我正在尝试创建一个跨浏览器的 Python-Selenium
测试脚本。因此,无论我使用哪种 webdriver
(Chrome
或 IE
),我都需要所有结果都相同。
我可以按如下方式设置浏览器窗口大小:
driver.set_window_size(1920, 1080)
但是下面的代码将为 Chrome
和 IE
返回不同的值:
element = driver.find_element_by_xpath('some_xpath')
element.location
视口(viewport)区域(显示网页内容的地方)大小不同(Chrome
- 1910x998,IE
- 1904x965)尽管窗口大小相同。为了获得这些值,我使用了
driver.execute_script('return document.documentElement.clientHeight')
driver.execute_script('return document.documentElement.clientWidth')
所以我试过了
driver.execute_script('document.documentElement.clientHeight = "990px";')
driver.execute_script('document.documentElement.clientWeight = "1900px";')
但运气不好
所以问题是如何在 selenium
中设置浏览器视口(viewport)大小?
最佳答案
这里是设置视口(viewport)大小的函数:
def set_viewport_size(driver, width, height):
window_size = driver.execute_script("""
return [window.outerWidth - window.innerWidth + arguments[0],
window.outerHeight - window.innerHeight + arguments[1]];
""", width, height)
driver.set_window_size(*window_size)
用法:
from selenium import webdriver
driver = webdriver.Chrome()
# set the viewport size to 800 x 600
set_viewport_size(driver, 800, 600)
# display the viewport size
print driver.execute_script("return [window.innerWidth, window.innerHeight];")
关于javascript - 如何设置浏览器视口(viewport)大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37181403/