Aay*_*wal 10 html python selenium selenium-webdriver
我能够验证一个元素是否存在以及它是否显示,但似乎无法找到一种方法来查看它是否是"可点击的"(不是在谈论禁用).
问题是,当填充webform时,我想要的元素在加载时可能会叠加div.div本身很难被发现,因为它的id,名称甚至css都很灵活.因此,我试图检测输入字段是否可以"点击"或"填充".当存在重叠div时,该字段不能由普通用户填充(因为div将覆盖输入字段而不允许用户填充它),但它可以由selenium填充.我想防止这种情况,只有当用户也可以填充它时才允许硒填充它.
ale*_*cxe 17
您可以等待元素可点击:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get("http://somedomain")
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "myDynamicElement"))
)
Run Code Online (Sandbox Code Playgroud)
或者,您可以遵循EAFP原则并捕获由click()以下内容引发的异常:
from selenium.common.exceptions import WebDriverException
try:
element.click()
except WebDriverException:
print "Element is not clickable"
Run Code Online (Sandbox Code Playgroud)
小智 8
您可以在对输入字段执行任何操作之前使用webElement.isEnabled()和webElement.isDisplayed()方法...
我希望这能解决你的问题......
否则,您还可以放置一个循环来检查以上 2 个条件,如果这些条件为真,您可以指定输入文本,然后您可以再次找到相同的元素,您可以获得 webelement 的文本并将该文本与您输入的文本进行比较. 如果这些匹配,您可以退出循环。