问题描述
在Windows 10(64位,python3.6.8)上,如果未指定get
或http://
协议就填充了链接,则无法通过驱动程序的https://
方法打开链接。
我将selenium==3.141
和msedge-selenium-tools-3.141.2
与python一起使用。
Microsoft Edge版本85.0.564.51(与驱动程序版本相同)。
from msedge.selenium_tools import Edge,EdgeOptions
options = EdgeOptions()
options.set_capability('platform','Windows')
options.use_chromium = True
path = r'<correct path to driver>'
driver = Edge(executable_path=path,service_args=None,options=options,desired_capabilities={})
driver.get('google.com')
错误:selenium.common.exceptions.invalidargumentexception: Message: invalid argument (Session info: MicrosoftEdge=85.0.564.51)
浏览器出现错误状态-浏览器已启动,并指向data:,
网址。
经过一番调查,我发现如果我将driver.get('google.com')
更改为driver.get('http://google.com')
,则问题是不可复制的。
解决方法
主要要考虑的是,您的程序不应停留在网址栏中的 data:,
。如果发生这种情况,最简单的解决方案是对以下几点进行交叉检查:
-
在调用通过{em> URL 的
get()
方法时,您需要传递Fully Qualified Domain Name (FQDN)。您需要确保url的格式正确。例如,协议(即http
)随实际URL附加如下:https://www.google.com/
-
此外,您还需要确保根据 Google Chrome浏览器和ChromeDriver
使用的二进制兼容版本
我同意@DebanjanB的建议。
使用driver.get(“ URL”)方法时,您需要强制通过URL传递协议。
如果您未通过协议,则会收到错误消息。
根据您使用的编程语言,该错误可能有所不同。
我建议您参考此document并尝试完整阅读。它适用于Firefox并使用JAVA语言,但所有浏览器和所有编程语言的逻辑均相同。我希望它能帮助您清除混乱。
,尝试在另一台计算机上运行相同的代码后,它运行良好,没有任何错误。对我来说,我在第一台计算机上使用的安装程序或Parallels VM似乎有些问题