Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 Can';无法计算selenium-无法定位元素_Python_Selenium - Fatal编程技术网

Python Can';无法计算selenium-无法定位元素

Python Can';无法计算selenium-无法定位元素,python,selenium,Python,Selenium,我正在尝试学习如何使用selenium点击。我尝试过一些不同的网站,如reddit、google等,但都没有成功 driver.get('https://www.dropbox.com/login') driver.find_element_by_xpath('//a[@href="' + 'https://www.dropbox.com/forgot?email_from_login=' + '"]').click() 及 它们都存在,但都不起作用。我做错了什么?你能试试以下方法吗: fro

我正在尝试学习如何使用selenium点击。我尝试过一些不同的网站,如reddit、google等,但都没有成功

driver.get('https://www.dropbox.com/login')
driver.find_element_by_xpath('//a[@href="' + 'https://www.dropbox.com/forgot?email_from_login=' + '"]').click()


它们都存在,但都不起作用。我做错了什么?

你能试试以下方法吗:

from selenium.webdriver.common.by import By
driver.findElement(By.cssSelector(".login-button.signin-button.button-primary")).click()

你能试一下吗

from selenium.webdriver.common.by import By
driver.findElement(By.cssSelector(".login-button.signin-button.button-primary")).click()

您在xpath中有点特殊,因此有很多方法可能会出错。使用xpath,您只需执行以下操作:

driver.find_element_by_xpath("//*[@class='forgot-password-link']").click()

我不做任何假设,但如果你还没有,Chrome的inspect元素中有一个非常方便的工具,可以让你点击一个元素并跳转到它在inspector中的节点。

你的xpath有点特殊,所以你可能会有更多的方法出错。使用xpath,您只需执行以下操作:

driver.find_element_by_xpath("//*[@class='forgot-password-link']").click()

我不做任何假设,但如果您还没有,Chrome的inspect元素中有一个非常方便的工具,可以让您单击元素并跳转到inspector中的节点。

您可以使用一个较短的单类选择器登录按钮

driver.find_element_by_css_selector(".login-button").click()
使用谷歌登录

driver.find_element_by_css_selector(".sign-in-text").click()
忘记密码

driver.find_element_by_css_selector(".forgot-password-link").click()

单类css选择器将是最快的方法(比xpath和复合类更快)

您可以使用更短的单类选择器登录按钮

driver.find_element_by_css_selector(".login-button").click()
使用谷歌登录

driver.find_element_by_css_selector(".sign-in-text").click()
忘记密码

driver.find_element_by_css_selector(".forgot-password-link").click()

单类css选择器将是最快的方法(比xpath和复合类快)

好吧,至少已经找到了。但它不起作用,“不允许使用复合类名”为什么OP(或任何其他人)要“尝试”这个呢?这让你听起来好像不确定解决方案是否有效。除此之外,你不仅在回答OP,也在回答未来的读者,所以请详细解释一下为什么这会起作用;或者在代码周围的文本中,或者在代码中的注释中。嗯,至少找到了它。但它不起作用,“不允许使用复合类名”为什么OP(或任何其他人)要“尝试”这个呢?这让你听起来好像不确定解决方案是否有效。除此之外,你不仅在回答OP,也在回答未来的读者,所以请详细解释一下为什么这会起作用;可以是代码周围的文本,也可以是代码中的注释。您可以使用以下任意方式:驱动程序。通过xpath(“包含(文本(),“忘记您的密码”)”)查找元素。单击()可以使用以下任意方式:驱动程序。通过xpath(“包含(文本(),“忘记您的密码”)”)查找元素。单击()是,我正在和检查员商量。不幸的是,我在使用您的代码时遇到了相同的错误,'消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“忘记密码链接//*[@class='''']”}(会话信息:chrome=73.0.3683.103)'抱歉-您使用的是在我编辑之前的。请试试这个,我把文字放在引号的错误部分了!是的,行得通。我会试着看看我是否能从中找出硒元素。很高兴听到这个消息。我一直在构建一个Selenium Instagram机器人,你可以想象,有很多按钮可以点击。类和css选择器不断地给我错误,但是学习如何使用像这样的XPath使它变得更加容易。是的,我正在尝试使用inspector。不幸的是,我在使用您的代码时遇到了相同的错误,'消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“忘记密码链接//*[@class='''']”}(会话信息:chrome=73.0.3683.103)'抱歉-您使用的是在我编辑之前的。请试试这个,我把文字放在引号的错误部分了!是的,行得通。我会试着看看我是否能从中找出硒元素。很高兴听到这个消息。我一直在构建一个Selenium Instagram机器人,你可以想象,有很多按钮可以点击。类和css选择器不断地给我错误,但是学习如何使用像这样的XPath使它变得容易多了。