我试图从Selenium驱动ChromeDriver启动的google-chrome浏览上下文中检索navigator.plugins
的值。
使用google-chrome-devtools,我可以检索navigator.useragent
和navigator.plugins
,如下所示:
但是使用Selenium的execute_script()
方法,我可以提取navigator.useragent
,但是navigator.plugins
会引发以下循环引用错误:
>
代码块:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.google.com/")
print("userAgent: "+driver.execute_script("return navigator.userAgent;"))
print("plugins: "+driver.execute_script("return navigator.plugins;"))
控制台输出:
userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Traceback (most recent call last):
File "C:\Users\Soma Bhattacharjee\Desktop\Debanjan\PyPrograms\navigator_properties.py", line 19, in <module>
print("vendor: "+driver.execute_script("return navigator.plugins;"))
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 636, in execute_script
'args': converted_args})['value']
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: circular reference
(Session info: chrome=83.0.4103.116)
我已经通过了以下关于循环引用的讨论,我理解了这个概念。但我不知道我应该如何在这里解决这个问题。
如果您需要一个插件列表,可以尝试只返回一个序列化的、以换行分隔的字符串,然后在Python域中用换行符号拆分它。
例如:
plugins = driver.execute_script("return Array.from(navigator.plugins).map(({name}) => name).join('\n');").split('\n')
我有一个基于Euler项目问题3的代码:“13195的素数因子是5、7、13和29。600851475143中最大的素数因子是什么?” 我在下面有一个我认为可行的代码,但第9行()不断返回错误:“索引器:列表索引超出范围”。当我在for循环中移动时,似乎并没有修改列表,所以我不确定出了什么问题。 有人知道我哪里错了吗? 非常感谢。
ServletException:循环视图路径[home]:将再次分派回当前处理程序URL[/home]。检查您的视图解析器设置!(提示:这可能是由于默认视图名称生成而导致的未指定视图的结果。)在org.springframework.web.servlet.view.internalResourceView.prepareforrendering(internalResourceView.jav
我尝试执行下面的python代码 最后一个语句通过以下连接错误。
例:“at”和“tack”应该返回true,“tree”和“ere”应该返回false。 在查看注释后编辑,我的新代码现在是这样的。它总是返回false,即使带有“tree”和“tree”。
问题内容: 我尝试序列化从实体数据模型.edmx自动生成的POCO类,使用时 我收到以下错误: 错误检测到类型为System.data.entity的自引用循环。 我该如何解决这个问题? 问题答案: 那是最好的解决方案 https://code.msdn.microsoft.com/Loop-Reference-handling-in- caaffaf7 (我选择/尝试了这个,还有很多其他选择)