【问题标题】:Selenium Webdriver (Java) cannot click the AJAX buttonSelenium Webdriver (Java) 无法点击 AJAX 按钮
【发布时间】:2015-04-25 12:34:02
【问题描述】:

我有一个顶部有一些按钮的网站。 单击后,将出现一个新的 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>

我在 Selenium 中使用此代码

 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 毫秒

谁能帮帮我?

谢谢。

【问题讨论】:

  • 您的跨度部分没有按钮?你想简单地点击文本“添加”吗?
  • 有一个按钮,上面有“添加”文本。单击“添加”按钮时,它将加载一个小的 AJAX 部分。
  • 在这种情况下,我使用 JavascriptExecutor click 方法取得了一些成功。

标签: java ajax selenium selenium-webdriver webdriver


【解决方案1】:

可能li 元素实际上是可点击的:

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

【讨论】:

    【解决方案2】:

    我找到了一个很好的解决方案。 基本上,我使用 FirePath (Firefox Add-on) 来查找 CSS 或 XPath 位置并将其用于我的 webdriver 代码。 Firepath 告诉我该按钮有 CSS 位置

    .add.u-yellow&gt;span

    我把它放在我的代码中

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

    ...它的工作原理:)

    我不熟悉 Javascript,所以我不知道为什么 .add.u-yellow&gt;span 有效。但是 FirePath 似乎是帮助 Webdriver 开发人员的好工具 :)

    【讨论】:

      【解决方案3】:

      这可能是很多事情。

      1. 元素不在网络浏览器的可见视图中
      2. 页面尚未加载完毕
      3. 元素在另一个元素的后面

      您可以尝试按照其他人的建议单击父元素:

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

      或者,您可以绑定 span 元素的类:

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

      【讨论】:

        猜你喜欢
        • 2021-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-16
        • 2016-03-02
        • 2019-02-27
        • 1970-01-01
        • 2014-01-04
        相关资源
        最近更新 更多