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

在Selenium Java中检查元素是否可单击

吕向荣
2023-03-14

我是Selenium的新手,需要检查元素是否可以在SeleniumJava中单击,因为element.click()链接标签上都传递。

我尝试使用以下代码,但不起作用:

WebDriverWait wait = new WebDriverWait(Scenario1Test.driver, 10);

if(wait.until(ExpectedConditions.elementToBeClickable(By.xpath("(//div[@id='brandSlider']/div[1]/div/div/div/img)[50]")))==null)

共有1个答案

许鸿志
2023-03-14

ElementTobeclickable用于检查某个元素是否可见并启用,以便单击该元素。

ExpectedConditions.ElementTobeclickable返回WebElement如果预期条件为true,否则将抛出TimeoutException,则不会返回NULL

因此,如果您使用ExpectedConditions.ElementTobeclickable来查找一个始终为您提供可单击元素的元素,因此不需要检查null条件,您应该按以下方式尝试:-

WebDriverWait wait = new WebDriverWait(Scenario1Test.driver, 10); 
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("(//div[@id='brandSlider']/div[1]/div/div/div/img)[50]")));
element.click();

正如您所说的那样,element.click()同时传递链接标签这并不意味着元素不可单击,而是意味着返回的元素已单击,但可能没有通过单击操作对元素执行事件。

注意:-我建议您首先尝试通过idnameclassname和其他定位器查找元素。如果在查找时遇到一些困难,那么使用CSSSelector,并且始终将最后优先级赋予XPath定位器,因为它比其他定位器定位元素要慢。

希望对你有所帮助..:)

 类似资料:
  • 问题内容: 有什么方法可以检查元素在纯JS(无jQuery)中是否可见? 因此,例如,在此页面中:PerformanceBikes,如果将鼠标悬停在Deals上(在顶部菜单上),则会显示一个交易窗口,但开始时未显示。它在HTML中,但不可见。 那么,给定一个DOM元素,我如何检查它是否可见?我试过了: 但它似乎不起作用。我想知道应该检查哪些属性。我想到: 还有其他我可能会想念的东西吗? 问题答案:

  • 有没有什么方法可以让我检查一个元素在纯JS(没有jQuery)中是否可见? 例如,在这个页面:Performance Bikes中,如果你将鼠标悬停在Deals(在顶部菜单上)上,就会出现一个Deals窗口,但一开始并没有显示出来。它在HTML中,但不可见。 那么,给定一个DOM元素,我如何检查它是否可见呢?我试过: 还有其他我可能失踪的吗?

  • 问题内容: 检查div类“ media”是否在浏览器的可视视口内的函数,而不管窗口的滚动位置如何。 试图通过此功能使用此插件,但我不知道如何使它工作。 问题答案: 好吧,您如何尝试使其工作?根据该插件的文档,返回一个布尔值,指示该元素是否可见。因此,您可以像这样使用它:

  • 问题内容: 我想检查Selenium中是否存在一个元素,如果存在,请将其分配给一个名称。 现在,我有这样的东西: 但是,当不存在值为9的元素时,它将返回错误。有没有一种方法可以检查它是否存在,或者类似的东西? 问题答案: 有几种选择。我推荐这些。 1.创建方法或Web驱动程序扩展。 2.计算元素,如果有1个或更多元素,则获取它。 那你可以检查

  • 本文向大家介绍如何检查可见DOM中是否存在元素?,包括了如何检查可见DOM中是否存在元素?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Node.contains方法执行此检查。Node.contains()方法返回一个布尔值,该值指示节点是否为给定节点的后代,即节点本身,其直接子级(childNodes)之一,子级的直接子级之一,依此类推。 示例 例如,您要查找具有id test的元素,

  • 问题内容: 我正在python中使用该库,并且希望保持队列条目唯一。 因此,我想在添加到队列之前检查队列中是否没有“某物”,本质上是这样的函数,它可以在队列库中工作: 还是我应该使用其他库/方法来实现这一目标? 问题答案: 标准类不能被迭代或检查。 但是,它被构建为可扩展。 首先,如果你看一下源(这是从文档的链接),有钩的方法,,并且可以覆盖改变实现。查看主类下面的子类,您可以看到它们是如何做到的