javascript - 如何设置浏览器视口(viewport)大小

标签 javascript python selenium browser selenium-webdriver

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

driver.set_window_size(1920, 1080)

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

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/

相关文章:

python - 使用索引和值过滤 Pandas 系列

java - 如何在Serenity bdd中手动使步骤失败而不跳过其他步骤

javascript - 有条件评估字符串

Java - 如何完全静默地运行我的应用程序而不弹出任何 GUI 或命令提示符?

python - 如何让你的主窗口在 Tkinter 成功登录后出现(PYTHON 3.6

java - 如何将 else false 添加到 boolean 方法

python - 如何设置代理认证用户名 :password using Python/Selenium

javascript - 浏览器如何处理内联 javascript 事件?

javascript - 计算多个位置谷歌地图的距离

Javascript通过相同的对象键重新排列数组