如何正确调用带有selenium的边缘浏览器?

mdfafbf1  于 2023-01-20  发布在  其他
关注(0)|答案(3)|浏览(155)

这个项目的目标是自动检查网站与微软边缘浏览器使用selenium-python我下载了webdriver的边缘遗产从this link,我去了最新版本17134提取它与出任何问题,现在让我们说,我想访问facebook在一个自动化的方式与火狐使用geckodriver
带有 selenium 的firefox代码示例

from  selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options

# setting up headless option for faster execution
options = Options()
options.headless = True

browser = (webdriver.Firefox(options=options))
browser.get('https://www.facebook.com/')

但是当我尝试使用Windows 10中内置的Microsoft Edge时,我得到了一个属性错误

from  selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.edge.options import Options


options = Options()
options.headless = True

#browser = webdriver.edge(options=options)
browser = webdriver.edge()

ps:当我取消注解这部分(browser = webdriver.edge(options=options))时,我得到了模块未找到错误
什么是正确的方式来调用微软边缘浏览器,或者我做错了什么

wrrgggsh

wrrgggsh1#

当我使用Edge并试图使Edge无头。我也发现很难像Chrome那样做一些微小的改变。我参考了官方文档并得到了一个官方的解决方案。除了Selenium,你还需要安装msedge-selenium-tools,只需pip安装pip install msedge-selenium-tools。并在msedge工具中使用Edge类。就像这样:

from msedge.selenium_tools import Edge
driver = Edge(executable_path='where')

如果我们想让Edge无头,我们需要使用EdgeOptions类,selenium.webdriver不提供。selenium.webdriver只提供ChromeOptions,FirefoxOptions和Ie的。EdgeOptions在一个单独的包msedge.selenium_tools中。然后我们添加参数,就像我们在Firefox或Chrome上所做的那样。在此之前,我们需要将属性use_chromium设置为True。整个代码:

from msedge.selenium_tools import EdgeOptions
from msedge.selenium_tools import Edge

# make Edge headless
edge_options = EdgeOptions()
edge_options.use_chromium = True  # if we miss this line, we can't make Edge headless
# A little different from Chrome cause we don't need two lines before 'headless' and 'disable-gpu'
edge_options.add_argument('headless')
edge_options.add_argument('disable-gpu')

driver = Edge(executable_path='where', options=edge_options)

希望能帮上忙。抱歉我的解释很笨拙。

fquxozlt

fquxozlt2#

我正在使用这个WebDriver软件包。运行非常完美。这个软件包可以自动下载并顺利运行您的系统兼容浏览器。如果您想安装并运行特定版本,也可以。要了解说明,请单击此处。
这段代码适用于Selenium 4 [Python 3.10.*]

class MyEdge:
      def get_browser(self):
          options = webdriver.EdgeOptions()
          # If you want to avoid popup browser use '--headless'
          options.add_argument('--headless')
          # Ref: https://learn.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=python#using-chromium-specific-options
          self.driver = webdriver.Edge(options= options,service=Service(EdgeChromiumDriverManager().install()))
          return self.driver

更多可选参数:--headless,--no-sandbox,“--禁用GPU”,"--窗口大小= 1280 x1696“,"--用户数据目录=/tmp/用户数据”,“--隐藏滚动条”,“--启用日志记录”,“--日志级别= 0”,,“--单进程”,“--数据路径=/tmp/数据路径”,“--忽略证书错误”,“--主目录=/tmp”,“--磁盘缓存目录=/tmp/缓存目录”

确保导入:

# Import
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager
bq8i3lrv

bq8i3lrv3#

我尝试参考WebDriver for Microsoft Edge(EdgeHTML)的官方文档。但是我没有得到任何关于Headless模式的信息。
WebDriver (EdgeHTML)
我也试着参考一些老的线程来寻找关于这个主题的任何信息,看起来我们不能在MS Edge遗留浏览器上使用无头模式。
Headless Edge driven through Selenium by C#
我发现有一篇文章也说“用户不能使用IE10、IE11、Edge、Opera和Safari进行无头测试”。
Headless Browsers Testing using Selenium Webdriver
从上面的参考资料来看,似乎您无法在MS Edge传统浏览器中使用Headless模式。
作为变通办法,我建议你试着用MS Edge Chromium浏览器做一个测试,我发现它支持无头模式。
使用特定于 chrome 的选件

相关问题