我正在编写一个脚本来查找“登录”并单击它以获取基于Web的应用程序,但我得到例外:
没有这样的元素:无法找到元素
我的代码:
System.setProperty("webdriver.chrome.driver","D:\\Selenium\\drivers\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.wayn.com"); //to find login
driver.findElement(By.xpath("//*[@id='TopMenu']/div[1]/div/div[2]/login-buttons/div/div[1]/div[1]"))
.sendKeys(Keys.ENTER);
答案 0 :(得分:2)
试试这种方式。
driver.get("http://www2.wayn.com");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.findElement(By.xpath("//div[@class='button big left red ng-isolate-scope'][@wayn-log-click='loginButtonsLogClick']")).click();
xpath的说明:使用class
和wayn-log-click
属性以及<div>
标记。
建议:,而不是使用absolute xpath
,请使用relative xpath
。
答案 1 :(得分:1)
尝试等待元素可见:
WebDriverWait wait =new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("username")));
driver.findElement(By.name("username")).sendKeys("username");
driver.findElement(By.name("password")).sendKeys("password");