2013-04-30 138 views
0

我在嘗試點擊表單中的按鈕時遇到問題。 我試過xpath,cssselector,className,id,但還是找不到它。使用Webdriver無法在表單上找到按鈕元素

這裏的按鈕的HTML片段:

<input type="button" value="Continue" id="ni-reg-btn-register" class="btnNext ni-reg-btn-register"> 

我使用webdriver的在Java中

獲取此跟蹤:
org.openqa.selenium.ElementNotVisibleException:元素當前不可見和因此可能不會與 命令持續時間或超時:30.09秒

頻率:100%

瀏覽器:Firefox

網址:https://subscription.thetimes.co.uk/webjourney/webj_capturecustomerdetails

我一個(但沒有運氣)嘗試每一個代碼以下行:

driver.findElement(By.className("btnNext ni-reg-btn-register")).click(); 
driver.findElement(By.cssSelector("buttons#ni-reg-btn-register.btnNext ni-reg-btn-register")).click(); 
List<WebElement> buttonlist= driver.findElements(By.className("btnNext ni-reg-btn-register")); 
driver.findElement(By.id("ni-reg-btn-register")).click(); 
driver.findElement(By.xpath("//*[@id="ni-reg-btn-register"]")).click(); 
+1

如果您收到ElementNotVisibleException,則無法單擊該元素。你可以檢查幾件事情。首先,我已經看到了很多,在DOM中可能存在另一個相同的按鈕,它是隱藏的,而不是您想要點擊的按鈕。檢查重複項。接下來檢查是否需要等待元素可見之後才能點擊它。嘗試瀏覽你的代碼,看看你是否得到相同的錯誤。 – Bob 2013-04-30 19:32:30

+0

,現在我已經查看了您提供的網站,但沒有看到任何重複內容,但它仍然可能是時間問題。另外,既然它是一個表單,你也可以嘗試driver.findElement(By.id(「ni-reg-btn-register」))。submit();無論哪種方式,您的選擇似乎都是現貨。 – Bob 2013-04-30 19:41:08

回答

0

我能夠點擊Continue按鈕使用下面的xpath。

//input[@id='ni-reg-btn-register'] 
+0

我添加了: - driver.findElement(By.xpath(「// input [@ id ='ni-reg-btn-register']」))。click();但它不起作用 – rpetterson 2013-04-30 13:08:19

0

我會建議您嘗試使用WebDriverWait呼叫等待有問題的元素在頁面上用它進行交互之前存在。 Java文檔可以在here找到。看起來,當您使用正確的定位器並且您的頁面正在工作時,Selenium在加載之前嘗試訪問該元素時存在計時問題。

編輯:我無法找到提供的頁面上提供的ID元素。我假設我錯過了一個步驟,但是我搜索了該頁面的HTML並沒有發現任何內容。

0

我不找你提供的網頁鏈接.. 更好CHK頁面鏈接上面的按鈕,並嘗試頁面加載後給予一定的等待語句...

隱含的等待將是更好或簡化線程。睡眠(2000);

相關問題