【发布时间】:2021-06-22 06:20:42
【问题描述】:
在 PyCharm 中使用 EventFiringWebDriver 调试 Selenium 脚本,导致记录异常:
'WebDriver' object has no attribute '__len__'
它会减慢 IDE,但不会破坏(停止)脚本。
这里是完整的代码:
from selenium import webdriver
from selenium.webdriver.support.event_firing_webdriver import EventFiringWebDriver
from selenium.webdriver.support.events import AbstractEventListener
class ScreenshotListener(AbstractEventListener):
def on_exception(self, exception, driver):
print(exception)
driver = webdriver.Chrome('chromedriver.exe')
ef_driver = EventFiringWebDriver(driver, ScreenshotListener())
ef_driver.get('https://google.com/')
title = ef_driver.title
driver.quit()
assert "Google", title
当我在标准模式下运行附加脚本时,一切正常。
但使用 PyCharm Debug 运行(这里是 Debug 控制台开头的输出):
C:\Pro\selenium-debug\venv\Scripts\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2020.1.1\plugins\python-ce\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 59668 --file C:/Pro/selenium-debug/simple_test.py
我得到了这些异常(每次我打电话给ef_driver):
'WebDriver' object has no attribute '__len__'
'WebDriver' object has no attribute '__len__'
它不会停止脚本,它只会导致调试器变慢(它会更新驱动程序并将焦点设置为浏览器)。
知道为什么会触发和记录它吗?
奖励:使用 pdb 在控制台中运行调试是可以的,所以这看起来像严格的 PyCharm 调试 连接的东西
【问题讨论】:
-
您是否尝试过从末尾注释掉越来越多的代码并重新运行以查看错误在哪一行?
-
据此:stackoverflow.com/questions/29533830/…获取页面标题需要使用driver.getTitle()方法
标签: python selenium debugging selenium-webdriver pycharm