Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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 If语句不返回此类元素函数_Python_Selenium_Selenium Chromedriver - Fatal编程技术网

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}