2016-09-22 31 views
0

enter image description here定時輸出10秒來等待位於元素的存在之後使用Selenium Wedriver

定位器這是正確的,但在硒的webdriver運行它時,我收到了同樣的錯誤。 我用不同種類的像隱觀望,等待明確的等待,並等待在場元素

WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.xp‌​ath("//div[@id = 'bs-example-navbar-collapse-1']/ul[2]/li[1]"))); 
driver.findElement(By.xpath("//div[@id = 'bs-example-navbar-collapse-1']/ul[2]/li[1]")).click(); 
+1

分享您硒和html代碼 –

+0

WebElement myDynamicElement =(new WebDriverWait(driver,10))。until(ExpectedConditions.presenceOfElementLocated(By.xpath(「// div [@id ='bs-example-navbar-collapse-1']/ul [2 ] /鋰[1]「))); driver.findElement(By.xpath(「// div [@id ='bs-example-navbar-collapse-1']/ul [2]/li [1]」))。click(); –

+0

你能分享這個網站嗎? –

回答

0

而不是使用「presenceOfElementLocated(通過定位器)」,使用「visibilityOfElementLocated(通過定位器)」的。 'presenceOfElementLocated(By locator)'只能確認DOM中是否存在元素,但並不表示該元素是可見或啓用的。但是,如果您使用'visibilityOfElementLocated(By locator)',那麼它確認該元素存在於DOM中並且可見。如果你點擊元素,你也可以使用'elementToBeClickable(By locator)';

0

其Shine.com,點擊登錄鏈接在右上方

你應該嘗試使用By.linkText()點擊如下Login按鈕: -

driver.get("http://www.shine.com/"); 

WebDriverWait wait = new WebDriverWait(driver, 10);  
wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Login"))).click(); 
+0

我更喜歡使用By.className(「logedin」),因爲鏈接文本可以在頁面呈現其他語言時更改。 – vbail

相關問題