复制模式窗口的路径



我是这个社区的新手。我正在尝试从模式窗口执行登录选项的 xpath,但无法做到这一点。我尝试了 xpath 的所有组合,但没有得到结果。网站:https://yappily.com/提前谢谢。

下面是我的代码:

public class Web_Url
    {
        public static void main(String[] args)
        {   
            System.setProperty("webdriver.chrome.driver","C:\Program Files\selenium drivers\chromedriver_win32\chromedriver.exe");
             WebDriver driver = new ChromeDriver();
            driver.get("https://yappily.com/");         
            driver.manage().window().maximize();      
            System.out.println(driver.getCurrentUrl());
            driver.findElement(By.linkText("Login")).click();
            driver.findElement(By.xpath(".//*[@id='sell-login']/div/div/div[1]/p/a")).click();
    }
}

单击"登录"后,"登录模式"框需要一些时间才能加载。因此,您必须显式/隐式地处理等待。你可以在这里或这里阅读更多关于硒等待的信息。

我已经将WebDriverWaitExpectedConditions一起使用来实现相同的目的

此代码将解决您的问题

    WebDriver driver = new ChromeDriver();
    driver.get("https://yappily.com/");
    driver.manage().window().maximize();
    System.out.println(driver.getCurrentUrl());
    driver.findElement(By.linkText("Login")).click();
    WebDriverWait wait = new WebDriverWait(driver, 10);
    WebElement fbLogin = wait.until(ExpectedConditions.presenceOfElementLocated(
            By.xpath(".//*[@id='sell-login']/div/div/div[1]/p/a")));
    fbLogin.click();

你还必须在你的Xpath上工作.将来,这些xpath不会有太大帮助。阅读有关相对 xpath 和 css 选择器的信息

单击登录按钮后添加隐式等待。driver.manage((.timeouts((.implicitwait(5,Timeunit.second(;这将解决。

最新更新