javascript
  • java
  • selenium
  • webdriver
  • 2017-08-28 182 views -1 likes 
    -1

    點擊Selenium中的按鈕,我正面臨着艱難的時刻。無法點擊Selenium中的按鈕

    這裏的DOM:http://pasteboard.co/GHIjMd6.png

    我已經聲明瞭按鈕WebElement使用XPath(即返回一個節點按照Firepath有效的XPath)是這樣的:

    WebElement send_this_msg_btn = driver.findElement(By.xpath("//*[@class='mp-button-content'][.='Send This Message']")); 
    

    我試着點擊說按鈕send_this_msg_btn Xpath在下面提到的方式,但他們都沒有爲我工作。

    的webdriver的click()方法:send_this_msg_btn.click()

    JavaScriptExecutor:

    JavaScriptExecutor jse = (JavaScriptExecutor)driver; 
    jse.executeScript("arguments[0].click();", send_this_msg_btn); 
    

    Actions類:

    Actions actions = new Actions(driver); 
    actions.moveToElement(send_this_msg_btn); 
    actions.click(); 
    actions.build().perform(); 
    

    我還檢查如果按鈕是幀/ iframe內,但是這不是這種情況無論是。

    +0

    你得到的錯誤是什麼? – Kapil

    +0

    @Kapil請檢查以下鏈接:https://pasteboard.co/GHIjMd6.png –

    +0

    在任何情況下,我都會得到NoSuchElementException。 –

    回答

    0

    更改XPath來.//mp-button[@class='mp-button-primary submit_button']解決了這個問題,但我不知道這應該是公認的答案,因爲我不知道這是否是一個脆弱的XPath。歡迎任何建議!

    -1

    嘗試點擊母按鈕

    xpath = "//*[@class='mp-button-content'][.='Send This Message']/.." 
    

    或它的父

    xpath = "//*[@class='mp-button-content'][.='Send This Message']/../.." 
    

    和使用顯式的等待,直到元素是可以點擊的。

    WebDriverWait wait = new WebDriverWait(driver, 30); 
    WebElement elem = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpath))); 
    elem.click(); 
    
    +0

    這些都不起作用。在這兩種情況下,我都會得到'NoSuchElementException'。 –

    +0

    那麼你需要使用兩個我建議的xpath顯式等待。也更新你的問題與異常/你得到的錯誤。如果你沒有收到任何錯誤,那麼也請提及。 –

    +0

    我試着用你提到的xpaths也使用顯式等待,我得到這個:「org.openqa.selenium.TimeoutException:預期的條件失敗:等待元素是可點擊的」。 –

    相關問題