首页 > 解决方案 > 我对 Selenium NoSuchElementException (Python) 有疑问

问题描述

我对硒有疑问。我抓住NoSuchElementException了,因为页面可能尚未完成加载。页面加载完成时出现问题。它没有按预期工作。

Python代码:

onclickbtn = False
while (True):
    if onclickbtn == False:
        try:
            browser.find_element_by_class_name('btn.btn-solid-primary.btn--l.btn-solid-primary--disabled._3Kiuzg')
            print('Btn Close')
            browser.refresh()
            # sleep(0.5)
        except NoSuchElementException as exc:
            # print(exc)
            print("NoSuchElementException")
        except:
            browser.find_element_by_class_name('btn.btn-solid-primary.btn--l._3Kiuzg').click()
            print('Btn Open')
            onclickbtn = True

代码 HTML 1

<button type="button" class="btn btn-solid-primary btn--l _3Kiuzg">Click</button>

执行 1

NoSuchElementException
NoSuchElementException
NoSuchElementException
NoSuchElementException
...
...
...

as exc
Message: no such element: Unable to locate element: {"method":"css selector","selector":".btn.btn-solid-primary.btn--l.btn-solid-primary--disabled._3Kiuzg"}
  (Session info: chrome=91.0.4472.114)

代码 HTML 2

<button type="button" class="btn btn-solid-primary btn--l btn-solid-primary--disabled _3Kiuzg">Click</button>

执行2(它可以工作,但作为比较)

Btn Close
Btn Close
Btn Close
NoSuchElementException
NoSuchElementException
NoSuchElementException
Btn Close

as exc
Message: no such element: Unable to locate element: {"method":"css selector","selector":".btn.btn-solid-primary.btn--l.btn-solid-primary--disabled._3Kiuzg"}
  (Session info: chrome=91.0.4472.114)

帮我弄清楚如何解决它。

标签: pythonselenium

解决方案


find_element_by_class_name 需要一个参数只是类的名称,而不是 div 或 . 或者是其他东西。

试试 browser.find_element_by_css_selector('btn.btn-solid-primary.btn--l.btn-solid-primary--disabled._3Kiuzg')

'btn.btn-solid-primary.btn--l.btn-solid-primary--disabled._3Kiuzg'

这是一个 CSS 选择器,而不是类名。


推荐阅读