【发布时间】:2015-06-14 06:47:28
【问题描述】:
我有一个容器,其中包含许多元素。我正在循环遍历元素。 我的问题是检查元素是否不可点击的语法是什么。
【问题讨论】:
我有一个容器,其中包含许多元素。我正在循环遍历元素。 我的问题是检查元素是否不可点击的语法是什么。
【问题讨论】:
以下应该使它工作 -
element.is_displayed() and element.is_enabled()
此代码使用 Python。您可以将其更改为您选择的语言。
【讨论】:
现有方法isDisplayed 和isEnabled 无法检查元素是否可点击。
如果你想等待元素直到它可以点击然后点击它,你可能想看这个:Selenium WebDriver - determine if element is clickable (i.e. not obscured by dojo modal lightbox)
实际上,如果不实际点击元素,可能很难检查元素是否可点击。
【讨论】:
一种选择是执行以下操作。
from selenium.common.exceptions import WebDriverException
try:
element.click()
# add to list of clickable elements
except WebDriverException:
print "Element is not clickable"
【讨论】:
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");
}
【讨论】:
您可以为其创建自定义关键字,但如果元素显示并启用是必需的,但这并不是使元素可点击的所有条件。
自定义库中的自定义关键字示例:
from selenium.webdriver.remote.webelement import WebElement as webelement
def web_element_is_clickable(self, webelement):
return webelement.is_displayed() and webelement.is_enabled()
【讨论】:
desplegar = bot.find_element_by_xpath('//*[@id="login-button"]')
try:
if desplegar.is_enabled:
desplegar.click()
else:
break
except:
desplegar = None
【讨论】: