2017-06-04 110 views
0

使用的HtmlUnit我想點擊某網站的按鈕與Java的HtmlUnit找不到元素

登錄看來是成功然而,當我試圖點擊一個按鈕(使用JS腳本在登錄後並且,由id =「buttonGetDetails」)中定義的,它拋出一個錯誤,它不能由ID

「真」找到一個元素是測試

期間,我設置一個布爾值和「登錄成功」是一個 System.out.println使用
Error: 
elementName=[*] attributeName=[id] attributeValue=[buttonGetDetails] 
true 
Login successful 
    at com.gargoylesoftware.htmlunit.html.HtmlPage.getHtmlElementById(HtmlPage.java:1597) 
+0

使用'htmlPage.asXml()'看看到的HtmlUnit什麼,並檢查是否有記錄的任何JavaScript錯誤。另外,儘量提供最低限度的重現性案例。 –

回答

0

的頁面可能需要一些在您登錄後加載的時間以及在加載頁面之前執行代碼以查找按鈕的時間。嘗試使用明確的等待。 http://toolsqa.com/selenium-webdriver/implicit-explicit-n-fluent-wait/

+0

Thread.sleep(x)會工作嗎? – ConfusedJavaDev

+0

不建議使用Thread.sleep,因爲它可能會暫停加載頁面的過程。添加顯式等待只需要兩行代碼: 'WebDriverWait wait = new WebDriverWait(driver,10); WebElement元素= wait.until(ExpectedConditions.elementToBeClickable(By.id( 「someid」)));' –