当前位置: 首页 > 知识库问答 >
问题:

Selenium Webdriver(Java)无法单击AJAX按钮

翁和颂
2023-03-14

我有一个顶部有一些按钮的网站。点击后,会出现一个新的AJAX部分。

我不太熟悉超文本标记语言,但是添加按钮(这个按钮是我的目标)不知何故位于

    <!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找不到该按钮,也无法单击它。

它返回错误

线程“main”组织中出现异常。openqa。硒。WebDriverException:未知错误:元素在点(1776,32)处不可单击。其他元素将收到点击:(会话信息:chrome=40.0.2214.115)(驱动程序信息:chromedriver=2.14.313457(3D645C400EDF2E2C500566C9AA09063E707C9CF),平台=Windows NT 6.3 x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:51毫秒

有人能帮我吗?

谢谢。


共有3个答案

弘承业
2023-03-14

可能有很多事情。

  1. 该元素不在web浏览器的可见视图端口中
  2. 页面尚未完成加载
  3. 元素在另一个元素后面

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

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

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

driver.findElement(By.cssSelector("span[style='background-color: transparent;']")).click();
子车灿
2023-03-14

我找到了一个好办法。基本上,我使用FirePath(Firefox插件)查找CSS或XPath位置,并将其用于我的webdriver代码。Firepath告诉我按钮有CSS位置

。添加黄色

我把它写进我的代码里

driver.find元素(By.css选择器

...它工作:)

我不熟悉Javascript,所以我不知道为什么。添加黄色

微生良策
2023-03-14

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

driver.findElement(By.cssSelector("li.add.u-yellow")).click();
 类似资料:
  • 我正在尝试通过xpath,css,ID...但什么都管用。 我总是得到错误:没有这样的元素:无法定位元素 我添加了一个明确的等待,但它仍然不起作用。 你能帮帮我吗? 单选按钮

  • 问题内容: HTML代码: 使用类名,我试图单击按钮,但无法单击。 我尝试了以下代码: 问题答案: 您可以尝试通过获取它。据我所记得,这只是一堂课。

  • 我试图用硒点击“下一页”按钮,但没有成功。我使用了正确的CSS选择器还是应该把它换成别的东西?

  • 对此表示歉意; 谢谢你

  • 我正在尝试使用Java Selenium Web驱动程序单击弹出窗口中的“保存”按钮,但是它会引发异常 消息:元素当前不可见,因此可能不会与命令持续时间交互 我可以看到“保存”按钮在我的弹出窗口中处于活动状态。我不知道它抛出异常的原因。 我正在尝试单击的“保存”按钮的 HTML 代码, firepath:html/body/div[6]/div/div/div/dir[2]/div/div//bu