Python 如果找不到另一个图元,如何单击该图元

Python 如果找不到另一个图元,如何单击该图元,python,selenium,Python,Selenium,我正在尝试执行以下指令: 我用以下代码搜索一个元素 ipokay = driver.find_element_by_xpath("//input[@type='checkbox']").click() 但我希望,如果未找到此元素,则返回错误“无法定位元素”,脚本应使用另一个类单击该元素,例如btn new btn wide 如何做到这一点?将代码包装在try/except块中 try: ipokay = driver.find_element_by_xpath("//input[@ty

我正在尝试执行以下指令:

我用以下代码搜索一个元素

ipokay = driver.find_element_by_xpath("//input[@type='checkbox']").click()
但我希望,如果未找到此元素,则返回错误“无法定位元素”,脚本应使用另一个类单击该元素,例如btn new btn wide


如何做到这一点?

将代码包装在try/except块中

try:
    ipokay = driver.find_element_by_xpath("//input[@type='checkbox']").click()
except NoSuchElementException:
    ipokay = driver.find_element_by_some_other_way("something").click()

您可以像John Gordon所说的那样将代码放入try/except块中。 或者您可以使用find_elements而不是find_element并检查列表大小。这样可以避免处理异常,而且比等待异常要快

ipokays=driver.find_elements_by_xpath//input[@type='checkbox'] 如果lenipokays>0: ipokays.index0.click 其他: 驱动程序。通过xpath/*[@class='btn-new btn-wide']查找元素。单击
使用下面的代码单击具有多个图元位置选项的图元。可以发送任意数量的不同元素定位器。它将一个接一个地尝试

例如:clickBy.xpathpath、By.idid、By.namename

公共静态无效点击。。。借{ int count=按.length; 福比定位器:由{ ifisElementPresentlocator{ getDriver.findElementlocator.click; 打破 } 计数-; }
ifcountPost您要查找的主标记和备用标记的HTML。欢迎使用。它是具有两个不同类名的同一个按钮,还是如果按钮A不存在,您希望单击按钮B?名称错误:未定义名称“NoTouchElementException”。您必须从selenium模块导入该异常。找不到元素:{method:xpath,selector://*[@class='.btn new.btn wide']}在xpath中,您不应该使用。像CSS选择器一样,使用dev工具中显示的完整类值。您可以将选择器更改为CSS选择器,并使用driver.find_element_by_CSS_selector'.btn new.btn wide'。