方法 is_displayed() 在返回 Selenium 中的输出之前出现错误
Method is_displayed() gets an error before returning an output in Selenium
我在 Python 中使用 Selenium。
在我的脚本中,我写了这一行来检查特定元素是否存在:
doesElementExist = driver.find_element(By.CSS_SELECTOR,'div.MediaThumbnail.Media--playButton>img').is_displayed()
print(doesElementExist)
为了测试,我 运行 我知道这个元素不存在的网站的脚本。因此,我期望 False 作为返回输出,因为 is_displayed() 方法 returns 一个布尔值。
但是,我收到一条错误消息,指出此元素不存在,这会停止脚本 运行 而不是返回 false 并继续运行脚本。
Traceback (most recent call last):
File ~/Desktop/ImageScraping/birdsScrapeTest.py:70 in <module>
if driver.find_element(By.CSS_SELECTOR,'div.MediaThumbnail.Media--playButton>img').is_displayed() == True:
File /opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:1251 in find_element
return self.execute(Command.FIND_ELEMENT, {
File /opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:430 in execute
self.error_handler.check_response(response)
File /opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py:247 in check_response
raise exception_class(message, screen, stacktrace)
NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"div.MediaThumbnail.Media--playButton>img"}
知道为什么会这样吗?
这不是 is_displayed()
方法的作用。此方法将告诉您 element
是否可见(隐藏但在 DOM 中)。因此,为了实现您期望的用法,您可以改为:
try:
doesElementExist = driver.find_element(By.CSS_SELECTOR,'div.MediaThumbnail.Media--playButton>img').is_displayed()
except NoSuchElementException:
doesElementExists = False
print("Element doesn't exists")
print(doesElementExist)
无论元素不在页面上还是隐藏,此逻辑都应该有效
我在 Python 中使用 Selenium。
在我的脚本中,我写了这一行来检查特定元素是否存在:
doesElementExist = driver.find_element(By.CSS_SELECTOR,'div.MediaThumbnail.Media--playButton>img').is_displayed()
print(doesElementExist)
为了测试,我 运行 我知道这个元素不存在的网站的脚本。因此,我期望 False 作为返回输出,因为 is_displayed() 方法 returns 一个布尔值。
但是,我收到一条错误消息,指出此元素不存在,这会停止脚本 运行 而不是返回 false 并继续运行脚本。
Traceback (most recent call last):
File ~/Desktop/ImageScraping/birdsScrapeTest.py:70 in <module>
if driver.find_element(By.CSS_SELECTOR,'div.MediaThumbnail.Media--playButton>img').is_displayed() == True:
File /opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:1251 in find_element
return self.execute(Command.FIND_ELEMENT, {
File /opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:430 in execute
self.error_handler.check_response(response)
File /opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py:247 in check_response
raise exception_class(message, screen, stacktrace)
NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"div.MediaThumbnail.Media--playButton>img"}
知道为什么会这样吗?
这不是 is_displayed()
方法的作用。此方法将告诉您 element
是否可见(隐藏但在 DOM 中)。因此,为了实现您期望的用法,您可以改为:
try:
doesElementExist = driver.find_element(By.CSS_SELECTOR,'div.MediaThumbnail.Media--playButton>img').is_displayed()
except NoSuchElementException:
doesElementExists = False
print("Element doesn't exists")
print(doesElementExist)
无论元素不在页面上还是隐藏,此逻辑都应该有效