简体   繁体   English

Selenium 我无法点击按钮 python

[英]Selenium i can't click button python

I'm try many method but not work U have any solution?我尝试了很多方法但不起作用你有什么解决方案吗?

<button type="button" class="btn btn-solid-primary btn--l _3Kiuzg" aria-disabled="false">buy</button>

My code and Error我的代码和错误

browser.find_elements_by_css_selector(".btn-solid-primary").click()

AttributeError: 'list' object has no attribute 'click'

i can try我可以试试

  • find_elements_by_class_name find_elements_by_class_name

not work不行

browser.find_element_by_class_name("btn btn-solid-primary btn--l _3Kiuzg")

error错误

Traceback (most recent call last):
  File "D:\Project-Program\selenium\test3.py", line 11, in <module>
    browser.find_element_by_class_name("btn btn-solid-primary btn--l _3Kiuzg")
  File "D:\Project-Program\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 564, in find_element_by_class_name
    return self.find_element(by=By.CLASS_NAME, value=name)
  File "D:\Project-Program\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "D:\Project-Program\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "D:\Project-Program\selenium\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".btn btn-solid-primary btn--l _3Kiuzg"}

Here is the ans - Change elements to element in the below code.这是 ans - 在下面的代码中将元素更改为元素。

browser.find_element_by_css_selector(".btn-solid-primary").click()

Also, I assume, you're parsing Instagram.另外,我假设您正在解析 Instagram。 It uses dynamic classes (In your case, _3Kiuzg ), that change after page reload.它使用动态类(在您的情况下为_3Kiuzg ),在页面重新加载后会发生变化。 So ensure, you're not looking for element by it.所以确保,你不是在寻找它的元素。 Function find_element_by_class_name is not taking many classes, so, if you want such, you should use find_element_by_css_selector , and selector .class_1.class_2.etc Function find_element_by_class_name没有很多类,所以,如果你想要这样,你应该使用find_element_by_css_selector和 selector .class_1.class_2.etc

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM