如何设置浏览器视口大小 [英] How to set browser viewport size
问题描述
我正在尝试创建一个跨浏览器的Python-Selenium
测试脚本.因此,无论我使用哪个webdriver
(Chrome
或IE
),我都需要所有结果都相同.
我可以将浏览器窗口大小设置如下:
I'm trying to create a cross-browser Python-Selenium
test script. So I need all results to be same no matter which webdriver
(Chrome
or IE
) I use.
I can set browser window size as follow:
driver.set_window_size(1920, 1080)
但是以下代码将为Chrome
和IE
返回不同的值:
But following code will return different values for Chrome
and IE
:
element = driver.find_element_by_xpath('some_xpath')
element.location
尽管窗口大小相同,但作为视口区域(显示Web内容的区域)的大小却不同(Chrome
-1910x998,IE
-1904x965).为了获得这些值,我使用了
as viewport area (where web-content displayed) sizes are different (Chrome
- 1910x998, IE
- 1904x965) despite of same window size. To get these values I used
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
中设置浏览器视口大小?
So the question is how to set browser viewport size in selenium
?
推荐答案
此处是用于设置视口大小的函数:
Here is function to set the viewport size:
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];")
这篇关于如何设置浏览器视口大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!