簡體   English   中英

Selenium Webdriver(Java)無法單擊AJAX按鈕

[英]Selenium Webdriver (Java) cannot click the AJAX button

我有一個網站,頂部有一些按鈕。 單擊后,將出現一個新的AJAX部分。

我對HTML不太熟悉,但是按鈕“添加”(此按鈕是我的目標)位於<span>

    <!DOCTYPE html>
<html slick-uniqueid="3">
<head></head>
<body class="newui">
    <div class="pagewrapper ">
        <div class="section shadow" data-form-element="SectionHeading">
            <div class="section-header">
                <div class="section-title"></div>
                <div class="section-nav">
                    <ul>
<li class="add u-yellow">
<span></span>
<span style="background-color: transparent;">
    Add
</span>

我在硒中使用此代碼

 driver.findElement(By.xpath("//li[5]/span[2]")).click();

但Selenium無法找到該按鈕或單擊它。

返回錯誤

線程“主要” org.openqa.selenium.WebDriverException中的異常:未知錯誤:元素在點(1776,32)不可單擊。 其他元素將收到單擊:(會話信息:chrome = 40.0.2214.115)(驅動程序信息:chromedriver = 2.14.313457(3d645c400edf2e2c500566c9aa096063e707c9cf),平台= Windows NT 6.3 x86_64)(警告:服務器未提供任何堆棧跟蹤信息)命令持續時間或超時:51毫秒

誰能幫我嗎?

謝謝。

li元素實際上是可點擊的:

driver.findElement(By.cssSelector("li.add.u-yellow")).click();

我找到了一個很好的解決方案。 基本上,我使用FirePath(Firefox附加組件)查找CSS或XPath位置,並將其用於我的webdriver代碼。 Firepath告訴我該按鈕具有CSS位置

.add.u-yellow>span

我把它放在我的代碼中

driver.findElement(By.cssSelector(".add.u-yellow>span")).click();

... 有用 :)

我不熟悉Javascript,所以不知道為什么.add.u-yellow>span可以正常工作。 但是FirePath似乎是協助Webdriver開發人員的好工具:)

可能有很多事情。

  1. 元素不在Web瀏覽器的可見視圖端口中
  2. 頁面尚未完成加載
  3. 該元素在另一個元素后面

您可以嘗試單擊父元素,因為已經有人建議:

driver.findElement(By.cssSelector("li.add.u-yellow")).click();

另外,您可以綁定span元素的類:

driver.findElement(By.cssSelector("span[style='background-color: transparent;']")).click();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM