即使元素不存在,Selenium也会继续脚本

2024-06-11 14:21:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码当前外观的一个示例

driver.find_element(By.ID, "FirstName").send_keys("MyFirstName")
driver.find_element(By.ID, "LastName").send_keys("MyLastName")
driver.find_element(By.ID, "PhoneNumber").send_keys("myPhoneNumber")
driver.find_element(By.ID, "Email").send_keys("myEmail")

例如,当元素ID“PhoneNumber”不存在时,脚本将以错误代码“无法定位元素”停止,需要添加或更改什么才能继续脚本而不中断,即使某个元素不存在

提前谢谢


Tags: 代码脚本sendid元素示例bydriver
2条回答

您可以实现try/except

from selenium.common.exceptions import NoSuchElementException

...
driver.find_element(By.ID, "LastName").send_keys("MyLastName")
try:
    driver.find_element(By.ID, "PhoneNumber").send_keys("myPhoneNumber")
except NoSuchElementException:
    print("No Phone number input field found")
driver.find_element(By.ID, "Email").send_keys("myEmail")
...

或使用条件运算符,如下所示:

if driver.find_elements(By.ID, "PhoneNumber"):
    driver.find_element(By.ID, "PhoneNumber").send_keys("myPhoneNumber")

您应该能够使用try语句,它如下所示:

try:
    driver.find_element(By.ID, "FirstName").send_keys("MyFirstName")
except:
    print("Element not found")

try:
    driver.find_element(By.ID, "LastName").send_keys("MyLastName")
except:
    print("Element not found")

try:
    driver.find_element(By.ID, "PhoneNumber").send_keys("myPhoneNumber")
except:
    print("Element not found")

try:
    driver.find_element(By.ID, "Email").send_keys("myEmail")
except:
    print("Element not found")

它应该打印出“未找到元素”,然后继续脚本

相关问题 更多 >