在未指定协议的情况下打开网页时出现 Selenium InvalidArgumentException (http/https)
Selenium InvalidArgumentException on opening webpage without protocol specified (http/https)
在 Windows 10(64 位,python3.6.8)上,我无法通过驱动程序的 get
方法打开 link,以防 link未指定 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:,
url。
经过一些调查,我发现如果我将 driver.get('google.com')
更改为 driver.get('http://google.com')
,问题将无法重现。
主要担心的是,您的程序不应卡在 url 栏中的 data:,
。如果发生这种情况,最简单的解决方案是交叉检查以下几点:
调用 get()
方法传递 URL 时,您需要传递 Fully Qualified Domain Name (FQDN)。您需要确保 url 的格式正确。例如,协议 http
与实际的 url 一起附加如下:
https://www.google.com/
此外,您还需要确保使用 Google Chrome 浏览器 和
同意@DebanjanB 的建议
当使用 driver.get("URL") 方法时,您需要强制传递带有 URL 的协议。
如果你没有通过协议那么你会得到一个错误。
根据您使用的编程语言,错误可能会略有不同。
我建议您参考此 document 并尝试完整阅读它。它适用于 Firefox 并使用 JAVA 语言,但逻辑对于所有浏览器和所有编程语言都是相同的。希望能帮到你解惑。
在我尝试 运行 另一台机器上的相同代码后,它运行良好,没有任何错误。对我来说,我在第一台机器上使用的设置或 Parallels VM 似乎有些问题
在 Windows 10(64 位,python3.6.8)上,我无法通过驱动程序的 get
方法打开 link,以防 link未指定 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:,
url。
经过一些调查,我发现如果我将 driver.get('google.com')
更改为 driver.get('http://google.com')
,问题将无法重现。
主要担心的是,您的程序不应卡在 url 栏中的 data:,
。如果发生这种情况,最简单的解决方案是交叉检查以下几点:
调用
get()
方法传递 URL 时,您需要传递 Fully Qualified Domain Name (FQDN)。您需要确保 url 的格式正确。例如,协议http
与实际的 url 一起附加如下:https://www.google.com/
此外,您还需要确保使用 Google Chrome 浏览器 和
同意@DebanjanB 的建议
当使用 driver.get("URL") 方法时,您需要强制传递带有 URL 的协议。
如果你没有通过协议那么你会得到一个错误。
根据您使用的编程语言,错误可能会略有不同。
我建议您参考此 document 并尝试完整阅读它。它适用于 Firefox 并使用 JAVA 语言,但逻辑对于所有浏览器和所有编程语言都是相同的。希望能帮到你解惑。
在我尝试 运行 另一台机器上的相同代码后,它运行良好,没有任何错误。对我来说,我在第一台机器上使用的设置或 Parallels VM 似乎有些问题