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

不能点击和元素使用硒

陈斌蔚
2023-03-14

我正在尝试自动“Tableau”登录屏幕和下载报告流程。在我到达“下载”按钮之前一切正常。第一个问题是我无法右键单击下载按钮并在Chrome进行“检查”,这很奇怪。我不知何故能够通过浏览整个页面来找到xpath。当我尝试单击它时,我得到“由:org.openqa.selenium.NoSuchElementException引起:没有这样的元素:无法定位元素:{"方法":"xpath","selector":"/html/body/div[2]/div[2]/div/div[3]/div[4]/spans[1]"}"。

我正在使用的代码如下所述:

String xPath = "/html/body/div[2]/div[2]/div/div[3]/div[4]/span[1]";

    (new WebDriverWait(driver, 20))
       .until(ExpectedConditions.elementToBeClickable(By.xpath(xPath)));

    driver.findElement(By.xpath(xPath)).click();

从我选择xpath的地方看,页面布局是这样的

    <div class="tabToolbarButton tab-widget" style="-webkit-user-select: none; -webkit-tap-highlight-color: transparent; width: 77.4px;">
<span class="tabToolbarButtonImg tab-icon-download"></span>
<span class="tabToolbarButtonText">Download</span></div>
<span class="tabToolbarButtonImg tab-icon-download"></span>
<span class="tabToolbarButtonText">Download</span>
    </div>

任何帮助都将不胜感激。无法“检查”的原因可能是什么??

共有2个答案

湛光华
2023-03-14

我有问题。看来我试图自动化的网页使用了框架。这就是为什么即使在提供了xpath之后,元素也没有被点击。我必须使用“switchTo.frame”来获得焦点,然后我才能单击元素。感谢所有的回复。

我仍然不明白的是,为什么我不能直接检查元素,但这是一个不同的问题。

笪德华
2023-03-14

如果您无法右键单击该元素,您仍然可以右键单击页面上的任何位置并选择检查此元素。然后,您可以抓取小双目图标(工具提示消息-在页面中选择一个元素进行检查)并将其指向所需的Web元素以检查xpath。您需要检查的第一件事是您是否正确编写了xpath。在chrome上,您可以在没有任何插件的情况下执行此操作。在开发人员窗口(当您选择检查元素选项时打开的同一窗口)上,查找控制台窗口并编写您的xpath,如下所述并按Enter。

$x("Write x path here")

例如,google搜索框的xpath

$x("//input[@id='lst-ib']")

我不知道你为什么要写绝对的xpath。这是一个不好的做法。你可以用更好的方式为下载按钮编写x path。例如。

(//span[@class='tabToolbarButtonText'])
 类似资料:
  • 我正在使用selenium测试脚本。我得到以下错误和这个错误随机发生。当我跑10次时,我会得到大约两次。所以它不是真的可复制的。有人知道为什么会这样吗?我试图单击的元素在浏览器中绝对可见,并且不会四处移动,因此不需要调整大小或拖动元素。我正在使用chrome webdriver,我阅读了其他故障排除策略(调试“Element is not clickable at point”错误),它们似乎与我

  • Selenium webdriver版本-2.52.0 同样的测试用例在windows操作系统和firefox中运行良好

  • 我用selenium和python一起使用,我试图点击一个按钮,但它似乎不起作用。下面是html结构的图片: 这里 我已经尝试通过xpath和类单击该按钮,但没有成功。它也没有给我一个错误。我为每一个答案感到高兴!

  • 我有以下例外: WebDriverException:不能在点(1057.38330078125,673.13330078125)点击元素。其他元素将收到单击: 按钮id=“id4b6a687af6934e35b6f355f6305dc481”data-layout=“hbox”class=“hux-ui-button”type=“button”role=“button”> 硒=2.49。

  • 我目前正在处理一个自动填写表格的项目。当表单填写时,下一个按钮会出现,这就是为什么它给我一个错误。 我试过: HTML: 错误: selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被拦截:元素在点(203,530)不可点击。其他元素将收到点击:...(会话信息:chrome=76.0.3809.132)

  • 问题内容: 这个问题是由于总的中间在试图忠实于什么实际用户一样。所以我在想这种方法: 首先,而不是查找元素,然后单击: 编写单击以下内容的通用函数: 然后,当发生此异常时,请尝试以其他方式单击。 您认为这种方法可行吗? 问题答案: 请仔细阅读此堆栈溢出答案以更好地理解。 更新 我们也可以尝试 也请尝试如下 尝试使用Y坐标单击 尝试使用X坐标单击 希望这对您有帮助