使用python 2.7和selenium webdriver,我想通过执行以下操作来测试网站是否适合移动设备:
在启用“移动模式”的Chrome浏览器中打开网站(使用mobile_emulation
)
获取网站的body
宽度(以像素为单位)
当网站的body
宽度较大时,假设900px,比大多数手机的宽度,例如400px,那么我知道该网站不适合移动设备。
我的代码:
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=r'C:\Users\Jacob\PycharmProjects\Testing\chromedriver_win32\chromedriver.exe')
driver.get('https://www.tripadvisor.nl/')
body_width = driver.execute_script("return document.body.offsetWidth;")
print(body_width)
结果:
912
Process finished with exit code 0
问题:在这种情况下,website的移动版本的正确body
宽度为360px,而不是912px(在开发工具中使用Chrome的“设备工具栏”进行检查)。所以我的脚本无法正常工作。我也有其他网址的这个问题。我该如何解决这个问题?
答案 0 :(得分:2)
您没有将chrome_options
传递给司机,请参阅以下内容:
driver = webdriver.Chrome(executable_path=r'C:\Users\Jacob\PycharmProjects\Testing\chromedriver_win32\chromedriver.exe', crome_options=chrome_options)
怎么做:
>>> driver = webdriver.Chrome(chrome_options=chrome_options)
>>> driver.get('https://www.tripadvisor.nl/')
>>> driver.execute_script("return document.body.offsetWidth;")
360