Python 硒 is_displayed 方法
Python selenium is_displayed method
我希望能够到达 else 语句并且在元素未显示时不会出现异常。
例如:
if driver.find_element_by_xpath("/html/body/main/div/article[2]/div[4]/header/div[2]/div/div[3]/a[4]").is_displayed():
print("yeah found it")
else:
print("not found")
您不能在 不存在 的元素上调用 is_displayed() 或任何其他 属性。 is_displayed() 只有在 DOM 中存在但隐藏或显示的元素时才有效。您的程序甚至在到达代码以检查它是否显示之前就失败了。所以可能的解决方法可能是改用某种 try catch
from selenium.common.exceptions import NoSuchElementException
found = False
while not found:
try:
link = driver.find_element_by_xpath(linkAddress)
found = True
except NoSuchElementException:
time.sleep(2)
示例代码取自 here
我 运行 遇到了同样的问题,这个问答环节改变了游戏规则。我也通过 Saifur 调整了给定的代码,以满足我的需求,我认为这类似于这个问题的要求:
elementlist = []
found = False
while not found:
try:
element_ = browser.find_element_by_xpath("//*[@class='class' and (contains(text(),'Optional-text-contain'))]")
if element_.is_displayed():
value = element_.find_element_by_css_selector("*")
elementlist.append(value.text)
print("Element: " + value.text)
found = True
except NoSuchElementException:
elementlist.append("N/A")
print("Element: N/A")
found = True
此代码在页面中查找交替元素(有时存在,有时不存在)。如果它存在,它会给出它的值。如果不是 - 它在附加列表时正常继续 "NaN" 样式值,只是为了匹配以后 DFing
的轴
再次,Saifur 在此问题上提供了巨大的帮助。感谢 user3691239 提出这个问题,并提到它在稍作调整后对你有用。
我希望能够到达 else 语句并且在元素未显示时不会出现异常。
例如:
if driver.find_element_by_xpath("/html/body/main/div/article[2]/div[4]/header/div[2]/div/div[3]/a[4]").is_displayed():
print("yeah found it")
else:
print("not found")
您不能在 不存在 的元素上调用 is_displayed() 或任何其他 属性。 is_displayed() 只有在 DOM 中存在但隐藏或显示的元素时才有效。您的程序甚至在到达代码以检查它是否显示之前就失败了。所以可能的解决方法可能是改用某种 try catch
from selenium.common.exceptions import NoSuchElementException
found = False
while not found:
try:
link = driver.find_element_by_xpath(linkAddress)
found = True
except NoSuchElementException:
time.sleep(2)
示例代码取自 here
我 运行 遇到了同样的问题,这个问答环节改变了游戏规则。我也通过 Saifur 调整了给定的代码,以满足我的需求,我认为这类似于这个问题的要求:
elementlist = []
found = False
while not found:
try:
element_ = browser.find_element_by_xpath("//*[@class='class' and (contains(text(),'Optional-text-contain'))]")
if element_.is_displayed():
value = element_.find_element_by_css_selector("*")
elementlist.append(value.text)
print("Element: " + value.text)
found = True
except NoSuchElementException:
elementlist.append("N/A")
print("Element: N/A")
found = True
此代码在页面中查找交替元素(有时存在,有时不存在)。如果它存在,它会给出它的值。如果不是 - 它在附加列表时正常继续 "NaN" 样式值,只是为了匹配以后 DFing
的轴再次,Saifur 在此问题上提供了巨大的帮助。感谢 user3691239 提出这个问题,并提到它在稍作调整后对你有用。