【问题标题】:Selenium i can't click button pythonSelenium 我无法单击按钮 python
【发布时间】:2021-04-16 19:21:11
【问题描述】:

我尝试了很多方法但都不起作用你有什么解决方案吗?

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

我的代码和错误

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

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

我可以试试

  • find_elements_by_class_name

不工作

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

错误

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"}

【问题讨论】:

  • 错误是不言自明的。在第一种情况下,当您使用find_elements 时会出现列表对象,如果您使用的是find_element,则表示未找到..在 selenium 中使用sleep 或默认对象,以便加载所有 Web 元素
  • browser.find_element_by_css_selector(".btn.btn-solid-primary.btn--l").click() 试试这个。你想使用 find_element。

标签: python selenium selenium-webdriver css-selectors


【解决方案1】:

这是 ans - 在下面的代码中将元素更改为元素。

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

【讨论】:

    【解决方案2】:

    另外,我假设您正在解析 Instagram。它使用动态类(在您的情况下,_3Kiuzg),在页面重新加载后会发生变化。所以确保,你不是在寻找它的元素。函数find_element_by_class_name 占用的类不多,所以,如果你想要这样,你应该使用find_element_by_css_selector,选择器.class_1.class_2.etc

    【讨论】:

      猜你喜欢
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多