pytest-selenium使用mobile_emulation或在设置中添加userAgent

时间:2017-04-27 04:22:43

标签: python selenium selenium-webdriver pytest

在Selenium中,我们可以使用mobileEmulation将chrome驱动程序更改为移动模式

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)
    webdriver.Chrome(chrome_options = chrome_options)

我已经检查了pytest-selenium有功能选项但不适用于用户代理

我有什么解决方案来模拟pytest-selenium中的移动设备吗?

感谢

1 个答案:

答案 0 :(得分:0)

临时解决方案是将代码放在conftest.py

使用yield diver让pytest-selenium获取dirver信息。

@pytest.yield_fixture
def mobileSelenium(request):
    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(chrome_options = chrome_options)
    request.node._driver = driver
    yield driver
    driver.quit()