无法单击按钮 - 未找到元素

时间:2017-09-12 13:56:57

标签: python selenium web

我试图让我的脚本点击Spotify登录页面上的登录按钮。我一整天都在寻找一个解决方案,但不管是什么课程,css或其他什么,它只是说它找不到对象。

我的代码:

INSERT INTO TableA (ColumnName1, ColumnName 2, ColumnName3, ... )
SELECT ColumnA, 'a', 'b', 'c'
FROM TableA WHERE ...
UNION 
Select ColumnB? 'a', 'b', 'c' ...
FROM TABLEB WHERE ....

这是我遇到问题的最后一行。注意:这只是我尝试的选项之一。

4 个答案:

答案 0 :(得分:0)

browser.find_element_by_xpath(".//button[contains(text(), 'Log In'])").click()

这应该有效,所以试一试。 :)

正如@Verv所说,你可能有时间问题。因此,只需使用time.sleep()进行测试,看看是否就是这样。

答案 1 :(得分:0)

您在类选择器中使用多个类。尝试只使用一个班级。像这样:

browser.find_element_by_class_name('btn-green').click()

如果它仍然不起作用,当您尝试单击该元素时,该元素可能尚未呈现,因此您可能想尝试使用explicit wait

另外,我检查了你的选择器,看起来你甚至没有指向按钮,而是指向表单。

最后,类选择器可能不是在此处定位元素的最佳方式。我可能会使用XPath选择器来查找包含文本Log In的按钮,使用以下XPath

//button[text()='Log In']

答案 2 :(得分:0)

使用此,我更新了答案:

login = browser.find_element_by_xapth("//button[@class='btn btn-sm btn-block btn-green ng-binding']")

login .click()

答案 3 :(得分:0)

您可以尝试使用xpath

的代码
login = browser.find_element_by_xpath("//button[contains(.,'Log In')]");
login.click();