Python If语句不返回此类元素函数
我有以下代码:Python If语句不返回此类元素函数,python,selenium,selenium-chromedriver,Python,Selenium,Selenium Chromedriver,我有以下代码: if(driver.find_element_by_xpath('//*[@id="Login"]/div/div/button[1]')!=0): driver.find_element_by_xpath('//*[@id="Login"]/div/div/button[1]').click() time.sleep(randint(1,2)) 如果找不到Login button并因此等于0,我希望将其移到下
if(driver.find_element_by_xpath('//*[@id="Login"]/div/div/button[1]')!=0):
driver.find_element_by_xpath('//*[@id="Login"]/div/div/button[1]').click()
time.sleep(randint(1,2))
如果找不到Login button并因此等于0,我希望将其移到下一行,但是当我运行这一行代码时,会出现以下错误:
消息:没有这样的元素:无法找到元素:{“方法”:“xpath”,“选择器”:“/*[@id=“Login”]/div/div/button[1]”
我不知道为什么会出现这个错误。这段代码的基本原理是,一旦您登录,当您重新打开网页时,它将自动登录,而无需您按下登录按钮,因此我需要停止登录序列。您的xpath可能不正确 右键单击元素,然后左键单击Inspect,单击HTML页面并单击CTRL+F。 在文本框中复制xpath并查看它是否指向HTML代码的任何部分, 如果没有,请尝试更改xpath 另外,如果您想检查是否显示了登录按钮,您可以使用
if(driver.findelements(By.xpath("//*[@id="Login"]/div/div/button[1]")).size>0)
{
//code block
}
请更新代码示例中的缩进。如果将不存在的元素描述传递给
。通过\u xpath()
查找\u element,\u,它肯定不会返回零None
似乎更有可能(虽然我不是selenium用户,所以我不能100%确定它会返回什么)。你甚至不需要=0,因为它将是一个布尔值。不管怎样,这都是事实。但是在这里,try-except更有用。元素在页面上不存在,我想检查它是否存在,如果存在,然后执行一些操作,如果不移动到下一行。如果站点加载时没有任何cookie,XPath肯定是正确的。是的,我提供了一个代码,可以检查页面上是否存在元素。if(driver.findelelements(By.xpath(“//*[@id=“Login”]/div/div/button[1]”).size>0){//code block}