如何使用Selenium WebDriver检查元素是否可点击

时间:2015-06-14 06:47:29

标签: selenium-webdriver

我有一个容器,其中包含许多元素。我正在通过元素循环。 我的问题是检查元素是否不可点击的语法是什么。

6 个答案:

答案 0 :(得分:3)

以下应该让它起作用 -

element.is_displayed() and element.is_enabled()

此代码使用Python。您可以将其更改为您选择的语言。

答案 1 :(得分:3)

现有方法isDisplayedisEnabled无法检查该元素是否可点击。

如果您想等待元素直到可点击,然后点击它,您可能希望看一下:Selenium WebDriver - determine if element is clickable (i.e. not obscured by dojo modal lightbox)

实际上,如果没有实际点击该元素,可能很难检查该元素是否可点击。

答案 2 :(得分:1)

您可以尝试以下if else条件

if(driver.findElement(By.xpath("--xpath of the clickable content")).isEnabled())
{
System.out.println("Element is clickable");
}
else
{
System.out.println("Element is not clickable");
}

答案 3 :(得分:1)

一种选择是执行以下操作。

from selenium.common.exceptions import WebDriverException    
try:
  element.click()
  # add to list of clickable elements
except WebDriverException:
  print "Element is not clickable"

答案 4 :(得分:0)

您可以为其创建一个自定义关键字,但是如果需要显示并启用元素,但这并不是使元素可单击的所有条件。

自定义库中的自定义关键字示例:

from selenium.webdriver.remote.webelement import WebElement as webelement

def web_element_is_clickable(self, webelement):
    return webelement.is_displayed() and webelement.is_enabled()

答案 5 :(得分:-1)

desplegar = bot.find_element_by_xpath('//*[@id="login-button"]')
try:
    if desplegar.is_enabled:
        desplegar.click()
    else:
         break
except:
    desplegar = None