在MacOs(Catalina)中的Selenium上运行Edge浏览器 [英] Running Edge browser on Selenium in MacOs (Catalina)

查看:168
本文介绍了在MacOs(Catalina)中的Selenium上运行Edge浏览器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以帮忙运行一个Python& amp;MacOS(Catalina吗?)

can someone help to run it one Python & MacOS ( catalina?)

我尝试在Windows环境中使用它,可以按预期工作,但不幸的是,无法在Mac上使用它.似乎需要一些配置

I've tried to use it on windows environment, works as expected, but unfortunately, cannot do it on mac. it seems that some configuration is needed

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.firefox.options import Options as options
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By



class Website:
    def __init__(self):

      self.driver = webdriver.Edge(executable_path='/Users/dannyk/Downloads/msedgedriver')

    def reach_web_docker(self):
        self.driver.maximize_window()
        self.driver.get('http://127.0.0.1:9080/')



if __name__ == '__main__':
    reg1 = Website()
    reg1.reach_web_docker()

我收到以下错误,不幸的是,它并没有真正解释问题的根源

And i get the following error, which unfortunately doesnt really explain what the issue is

>> runfile('/Users/dannyk/PycharmProjects/new_prj/t1.py', wdir='/Users/dannyk/PycharmProjects/new_prj')
/Users/dannyk/PycharmProjects/new_prj/t1.py:16: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  self.driver = webdriver.Edge(executable_path='/Users/dannyk/Downloads/msedgedriver')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Applications/PyCharm CE.app/Contents/plugins/python-ce/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "/Applications/PyCharm CE.app/Contents/plugins/python-ce/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/Users/dannyk/PycharmProjects/new_prj/t1.py", line 57, in <module>
    reg1 = Website()
  File "/Users/dannyk/PycharmProjects/new_prj/t1.py", line 16, in __init__
    self.driver = webdriver.Edge(executable_path='/Users/dannyk/Downloads/msedgedriver')
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/edge/webdriver.py", line 65, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.EDGE['browserName'], "ms",
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 79, in __init__
    RemoteWebDriver.__init__(
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 183, in __init__
    self.start_session(capabilities, browser_profile)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 280, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 349, in execute
    self.error_handler.check_response(response)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 240, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: No matching capabilities found
Stacktrace:
0   msedgedriver                        0x000000010e547ef9 msedgedriver + 12562169
1   msedgedriver                        0x000000010e486a23 msedgedriver + 11770403
2   msedgedriver                        0x000000010da59d2d msedgedriver + 1101101
3   msedgedriver                        0x000000010d99465e msedgedriver + 292446
4   msedgedriver                        0x000000010d993e82 msedgedriver + 290434
5   msedgedriver                        0x000000010d9954fd msedgedriver + 296189
6   msedgedriver                        0x000000010d991cb3 msedgedriver + 281779
7   msedgedriver                        0x000000010d96ac2d msedgedriver + 121901
8   msedgedriver                        0x000000010d96bc25 msedgedriver + 125989
9   msedgedriver                        0x000000010e4e109f msedgedriver + 12140703
10  msedgedriver                        0x000000010e4f39da msedgedriver + 12216794
11  msedgedriver                        0x000000010e4f3769 msedgedriver + 12216169
12  msedgedriver                        0x000000010e49e539 msedgedriver + 11867449
13  msedgedriver                        0x000000010e4f3f63 msedgedriver + 12218211
14  msedgedriver                        0x000000010e4ca783 msedgedriver + 12048259
15  msedgedriver                        0x000000010e510c24 msedgedriver + 12336164
16  msedgedriver                        0x000000010e551697 msedgedriver + 12600983
17  libsystem_pthread.dylib             0x00007fff69056109 _pthread_start + 148
18  libsystem_pthread.dylib             0x00007fff69051b8b thread_start + 15

推荐答案

我尝试检查错误消息并发现此异常.

I try to check the error message and found this exception.

selenium.common.exceptions.SessionNotCreatedException:消息:会话未创建:找不到匹配功能

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: No matching capabilities found

您似乎需要传递在MAC OS上运行此代码的功能.

It looks like you need to pass the capabilities to run this code on MAC OS.

以下是您可以尝试传递的功能示例.

Here is the example of Capabilities that you can try to pass.

desired_cap = {
"os" : "OS X",
"os_version" : "Catalina",
"browser" : "Edge",
"browser_version" : "83.0",
"browserstack.local" : "false",
"browserstack.selenium_version" : "3.5.2"
}

您可以根据环境修改值.

You can modify the values as per your environment.

参考:

selenium.webdriver.common.desired_capabilities

您需要在此行中将所需功能作为参数传递.

You need to pass the desired capabilities as a parameter in this line.

self.driver.get('http://127.0.0.1:9080/')

您可以进行测试,并告诉我们您的测试结果.

You can make a test and let us know about your test results.

这篇关于在MacOs(Catalina)中的Selenium上运行Edge浏览器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆