How to set browser viewport size

匿名 (未验证) 提交于 2019-12-03 01:22:02

问题:

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) 

But following code will return different values for Chrome and IE:

element = driver.find_element_by_xpath('some_xpath') element.location 

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') 

so I tried

driver.execute_script('document.documentElement.clientHeight = "990px";') driver.execute_script('document.documentElement.clientWeight = "1900px";') 

but with no luck

So the question is how to set browser viewport size in selenium?

回答1:

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) 

Usage :

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];") 


回答2:

I'm using this:

driver.manage().window().setSize(new org.openqa.selenium.Dimension(1900, 990)); 

Where 1900 is the width, and 990 is the height.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!