gpt4 book ai didi

python - 如何使用selenium和python获取网站的主体宽度?

转载 作者:行者123 更新时间:2023-12-01 03:14:13 25 4
gpt4 key购买 nike

使用 python 2.7 和 selenium webdriver,我想通过执行以下操作来测试网站是否适合移动设备:

  1. 在启用“移动模式”的 Chrome 浏览器中打开网站(使用 mobile_emulation)

  2. 获取网站的body宽度(以像素为单位)

  3. 当网站的 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 的“设备工具栏”进行检查)。所以我的脚本无法正常工作。我对其他 URL 也有这个问题。我该如何解决这个问题?

最佳答案

您没有将 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

关于python - 如何使用selenium和python获取网站的主体宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42610379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com