Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python Selenium如果元素为none,请单击其他元素_Python 3.x_Selenium_If Statement - Fatal编程技术网

Python 3.x Python Selenium如果元素为none,请单击其他元素

Python 3.x Python Selenium如果元素为none,请单击其他元素,python-3.x,selenium,if-statement,Python 3.x,Selenium,If Statement,每次我访问同一网站上不同股票的页面时,需要单击的其中一个按钮要么有xpath“//*[@id=“content”]/div[1]/div/a[4]”,要么有xpath“//*[@id=“content”]/div[1]/div/a[5] 如果第一个xpath与所选的股票不匹配,我如何让它切换到另一个xpath,同时又不会出现非类型错误 我的一个尝试是: tradebut=browser.find_element_by_xpath('//*[@id="content"]/div

每次我访问同一网站上不同股票的页面时,需要单击的其中一个按钮要么有xpath
“//*[@id=“content”]/div[1]/div/a[4]”
,要么有xpath
“//*[@id=“content”]/div[1]/div/a[5]

如果第一个xpath与所选的股票不匹配,我如何让它切换到另一个xpath,同时又不会出现非类型错误

我的一个尝试是:

tradebut=browser.find_element_by_xpath('//*[@id="content"]/div[1]/div/a[4]')
        tradebut.click()
        if tradebut.click() == None:
            browser.find_element_by_xpath('//*[@id="content"]/div[1]/div/a[5]').click()

提前感谢您的帮助。

假设您的实际错误类似于
AttributeError:“NoneType”对象没有属性“click”
,您可以这样处理异常:

try:
    tradebut = browser.find_element_by_xpath('//*[@id="content"]/div[1]/div/a[4]')
    tradebut.click()
except AttributeError:
    tradebut = browser.find_element_by_xpath('//*[@id="content"]/div[1]')
    tradebut.click()


如果错误不同,请将
AttributeError
与您的错误交换,或者删除它,只留下
except:

您可以在xpath中使用l或符号来分隔两种类型,然后使用try-except来捕获错误。如果其中一个XPath工作,则单击此按钮。