-1

在 Windows 10(64 位,python3.6.8)上,我无法通过驱动程序的方法打开链接,以防在未指定或协议get的情况下填充链接。http://https://

我使用selenium==3.141msedge-selenium-tools-3.141.2python。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'),则问题无法重现。

4

3 回答 3

0

主要问题是,您的程序不应停留data:,在 url 栏中。如果发生这种情况,最简单的解决方案是交叉检查以下几点:

  • 调用get()传递URL的方法时,您需要传递完全限定域名 (FQDN)。您需要确保网址格式正确。例如,协议 iehttp与实际 url 一起附加如下:

    https://www.google.com/
    
  • 此外,您还需要确保您使用的是与Google Chrome 浏览器ChromeDriver兼容的二进制文件

于 2020-09-23T17:58:31.120 回答
0

在我尝试在另一台机器上运行相同的代码后,它运行良好,没有任何错误。对我来说,我在第一台机器上使用的设置或 Parallels VM 似乎存在一些问题

于 2020-09-30T13:59:21.087 回答
0

我同意@DebanjanB 给出的建议。

使用 driver.get("URL") 方法时,您需要通过 URL 强制传递协议。

如果你没有通过协议,那么你会得到一个错误。

根据您使用的编程语言,错误可能会有所不同。

我建议您参考此文档并尝试完整阅读它。它适用于 Firefox 并使用 JAVA 语言,但所有浏览器和所有编程语言的逻辑都相同。我希望它能帮助你消除你的困惑。

于 2020-09-24T02:06:49.593 回答