2017-03-24 70 views
0

我寫一個腳本來定位「登錄」,並點擊它爲基於Web的應用程序,但我得到異常:無法硒定位元素3.0

沒有這樣的元素:找不到元素

我的代碼:

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

歡迎堆棧溢出!請閱讀[問]。請提供一個鏈接到頁面和/或相關的HTML。 – JeffC

回答

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<div>標籤一起wayn-log-click屬性。

意見建議: -而不是使用absolute xpath,使用relative xpath

+0

如果問題得到解決,請將此答案標記爲「已接受」。 有關如何接受答案的更多詳細信息,請參閱此帖:http://stackoverflow.com/help/someone-answers –

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");