如何设置浏览器视口大小 [英] How to set browser viewport size

查看:393
本文介绍了如何设置浏览器视口大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个跨浏览器的Python-Selenium测试脚本.因此,无论我使用哪个webdriver(ChromeIE),我都需要所有结果都相同. 我可以将浏览器窗口大小设置如下:

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)

但是以下代码将为ChromeIE返回不同的值:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆