【问题标题】:Is there a way to get selenium to press down Command+Shift+C at the same time?有没有办法让硒同时按下Command + Shift + C?
【发布时间】:2019-12-05 07:51:07
【问题描述】:

我正在尝试通过按 Command+Shift+c 然后按 Command+Shift+m​​ 在 Mac OS 上的移动视图中打开 Chrome。

我正在使用 Pycharm、Python3 和 Selenium。我尝试了很多不同的组合,这就是我记得的三种。

driver = webdriver.Chrome("/Users/y~~/chromedriver")
driver.get("https://instagram.com/")

keys = Keys()
actions = ActionChains(driver)

driver.find_element_by_tag_name('body').send_keys(keys.COMMAND + keys.SHIFT + 'c')
actions.key_down(keys.SHIFT).key_down(keys.COMMAND).send_keys('c').key_up(keys.SHIFT).key_up(keys.COMMAND).perform()
actions.send_keys(keys.COMMAND + keys.SHIFT +'c').perform()

按下三个按钮,应该会出现开发者的工具箱。然后我会用同样的方法按 cmd+shift+m​​ 这将打开/显示移动视图。

【问题讨论】:

    标签: python selenium google-chrome pycharm


    【解决方案1】:

    要在移动视图中打开 chrome,您可以参考以下代码。参考 Mobile Emulation

    from selenium import webdriver
    
    from selenium.webdriver.chrome.options import Options
    
    mobile_emulation = {
    
        "deviceMetrics": { "width": 360, "height": 640, "pixelRatio": 3.0 },
    
        "userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19" }
    
    chrome_options = Options()
    
    chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
    
    driver = webdriver.Chrome(executable_path='/Users/~location_of_chromedriver/chromedriver', chrome_options = chrome_options)
    

    【讨论】:

    • 如果我想在对网页进行一些操作后将 chrome 更改为 Mobile 视图,我该怎么办?
    • 尝试在 selenium 4 中使用 chrome Dev tools 协议来更改用户代理。最好将与移动视图和桌面视图相关的测试分开。
    【解决方案2】:

    Chromedriver for MacOS 中存在一个错误,该错误会阻止许多命令键组合工作。

    https://bugs.chromium.org/p/chromedriver/issues/detail?id=3023#c2

    您可以使用 Geckodriver 或在其他操作系统中运行测试来解决此问题。

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      相关资源
      最近更新 更多