如何设置浏览器视口大小
问题描述:
我试图创建一个跨浏览器Python-Selenium
测试脚本。所以我需要所有结果都是相同的,无论我使用哪个webdriver
(Chrome
或IE
)。 我可以设置浏览器窗口大小如下:如何设置浏览器视口大小
driver.set_window_size(1920, 1080)
但是,下面的代码为Chrome
和IE
返回不同的值:
element = driver.find_element_by_xpath('some_xpath')
element.location
为视区(其中网页内容显示)的大小是不同的( 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
设置浏览器窗口的大小?
答
这里是函数来设置视口大小:
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];")
答
我使用这个:
driver.manage().window().setSize(new org.openqa.selenium.Dimension(1900, 990));
其中1900是宽度,而990是高度。
+1
从文档:“[...]这将更改外部窗口维度,而不仅仅是视图端口[ ...]“ – crusy
你试过吗? http://stackoverflow.com/questions/15397483/how-do-i-set-browser-width-and-height-in-selenium-webdriver这是一个java的例子,但有一个python等效代码 –
@Pete,你意思???我已经做到了:) – Andersson
@RafaelAlmeida,感谢您的建议,但它似乎是一个不同的问题 – Andersson