Selenium(二)对浏览器窗口的操作

这篇具有很好参考价值的文章主要介绍了Selenium(二)对浏览器窗口的操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium可以通过WebDriver控制浏览器窗口的各种操作,包括:文章来源地址https://www.toymoban.com/news/detail-696301.html

打开浏览器窗口:

from selenium import webdriver
driver = webdriver.Chrome() # 打开Chrome浏览器窗口

获取浏览器大小:

# get_window_size() 返回的是字典
size = driver.get_window_size()
print(f"浏览器大小:{size}")

设置浏览器窗口的大小:

#driver.set_window_size(width, height) 
# 设置浏览器窗口的大小
driver.set_window_size(500, 500)

最大化浏览器:

driver.maximize_window()

 移动浏览器窗口到指定位置:

driver.set_window_position(x, y) # 移动浏览器窗口到指定位置

获取当前标签页的title:

print(f"标签页title:{driver.title}")

获取当前标签页的url:

print(f"标签页url:{driver.current_url}")

获取当前浏览器的名称(不常用):

print(f"标签页name:{driver.name}")

获取当前页面完整的HTML代码:

print(f"标签页page_source:{driver.page_source}")

前进、后退、刷新:

element = driver.find_element(By.TAG_NAME,"button")
element.click()
sleep(2)

# 后退
driver.back()
sleep(2)

# 前进
driver.forward()
sleep(2)

# 刷新
driver.refresh()
sleep(2)

执行js语句:

# 同步执行js
js='console.log(2)'
driver.execute_script(js)

sleep(2)

# 异步执行js
driver.execute_async_script("alert(2)")
sleep(2)

打开新的标签页:

js = 'window.open("https://www.baidu.com/")'
driver.execute_script(js)

获取当前标签页句柄:

print(f"当前标签页句柄:{driver.current_window_handle}")

获取浏览器所有标签页句柄:

handles = driver.window_handles
print(f"所有标签页句柄:{handles}")

切换标签页:

driver.switch_to.window(handles[0])

截图保存当前窗口:

import datetime

current_date = datetime.datetime.now().strftime('%m-%d-%H-%M-%S')
filename = f"file_{current_date}.png"    #文件名称为当前时间
driver.save_screenshot(filename)  # 截图保存当前窗口

关闭当前标签页:

driver.close()

浏览器窗口滚动页面:

from selenium import webdriver

from selenium.webdriver.common.by import By
from time import sleep

driver = webdriver.Chrome()

driver.get("https://www.baidu.com/")

#找到搜索框
select = driver.find_element(By.ID,"kw")
select.send_keys("selenium控制浏览器窗口滚动页面")

#点击搜索
select_click = driver.find_element(By.ID,"su")
select_click.click()

#隐式等待5秒
driver.implicitly_wait(5)

通过JS滚动页面:

"""
参数:	
x:沿 X 轴使用滚轮滚动的距离。负值向左滚动。
y:沿 Y 轴使用滚轮滚动的距离。负值向上滚动。
"""
driver.execute_script("window.scrollBy(0, 500);")  # 向下滚动页面500像素
print("向下滚动页面500像素")
sleep(2)

driver.execute_script("window.scrollBy(0, -500);")  # 向上滚动页面500像素
print("向上滚动页面500像素")
sleep(2)

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")  # 滚动到页面底部
print("滚动到页面底部")
sleep(2)

driver.execute_script("window.scrollTo(0, 0);")  # 滚动到页面顶部
print("滚动到页面顶部")
sleep(2)

滚动到元素:

from selenium.webdriver.common.action_chains import ActionChains

action = ActionChains(driver)
element = driver.find_element(By.ID,"rs_new")

# 滚动到元素
"""
scroll_to_element(元素:selenium.webdriver.remote.webelement.WebElement )
如果元素在视口之外,则将元素底部滚动到视口底部。

参数:	
element:要滚动到视口中的元素。

"""
action.scroll_to_element(element).perform()
print("滚动到元素")
sleep(2)

按给定数量滚动: 

# 按给定数量滚动
"""
scroll_by_amount( delta_x: int , delta_y: int )
按提供的数量滚动,原点位于视口的左上角。

参数:	
delta_x:沿 X 轴使用滚轮滚动的距离。负值向左滚动。
delta_y:沿 Y 轴使用滚轮滚动的距离。负值向上滚动。

"""
action.scroll_by_amount(50, -200).perform()  # 向上滚动200像素向右滚动50
print("按给定数量滚动-向上滚动200像素向右滚动50")
sleep(2)

 从元素滚动给定的量:

# 从元素滚动给定的量
"""
scroll_from_origin( scroll_origin: selenium.webdriver.common.actions.wheel_input.ScrollOrigin , delta_x: int , delta_y: int )
根据提供的来源按提供的数量滚动。滚动原点是元素的中心或视口的左上角加上任何偏移量。如果原点是一个元素,并且该元素不在视口中,则该元素的底部将首先滚动到视口底部。

参数:	
origin:滚动起源的地方(视口或元素中心)加上提供的偏移量。
delta_x:沿 X 轴使用滚轮滚动的距离。负值向左滚动。
delta_y:沿 Y 轴使用滚轮滚动的距离。负值向上滚动。
提高:	如果具有偏移的原点在视口之外。-移动TargetOutOfBoundsException - 如果具有偏移的原点在视口之外。
"""
from selenium.webdriver.common.actions.wheel_input import ScrollOrigin

scroll_origin = ScrollOrigin.from_element(element)
action.scroll_from_origin(scroll_origin,-50,200).perform()  # 向下滚动200像素向左滚动50
print("从元素滚动给定的量-向下滚动200像素向左滚动50")
sleep(2)

 frame切换:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

wb = webdriver.Chrome()
wb.get("https://cdn2.byhy.net/files/selenium/sample2.html")
wb.switch_to.frame("frame1")
elements = wb.find_elements(By.CLASS_NAME,"plant")

for element in elements:
    print(element.text)

sleep(2)
wb.quit()

frame切换回主HTML:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

wb = webdriver.Chrome()
wb.get("https://cdn2.byhy.net/files/selenium/sample2.html")

wb.switch_to.frame("frame1")

elements = wb.find_elements(By.CLASS_NAME,"animal")

for element in elements:
    print(element.text)

#将 driver 控制权切换回最初的默认 frame 或窗口
wb.switch_to.default_content()
button = wb.find_element(By.ID,"outerbutton")
print(button.text)
button.click()

sleep(2)

到了这里,关于Selenium(二)对浏览器窗口的操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Selenium】控制当前已经打开的 chrome浏览器窗口(高级版)

    利用 Selenium 获取已经打开的浏览器窗口,全python操作 标题 链接 【Selenium】控制当前已经打开的 chrome浏览器窗口 https://blog.csdn.net/weixin_45081575/article/details/112621581 【Selenium】控制当前已经打开的 chrome浏览器窗口(高级篇) https://blog.csdn.net/weixin_45081575/article/details/126389273 不同

    2024年01月17日
    浏览(85)
  • py Selenium来启动多个浏览器窗口或标签页,并操作它们

    使用Selenium库可以启动多个浏览器窗口或标签页,并进行操作。以下是一个简单的示例代码,演示如何使用Selenium启动多个浏览器窗口并操作它们: 在上面的代码中,我们首先使用 webdriver.Chrome() 方法创建了一个Chrome浏览器的实例,并使用 get(\\\"about:blank\\\") 方法打开了一个空白页

    2024年02月04日
    浏览(44)
  • selenium+python切换浏览器窗口

    selenium在当前浏览器页面打开了新的窗口,此时如果要聚焦到新开的浏览器窗口,就需要切换到新的窗口,切换窗口的操作,具体selenium+python示例如下:

    2024年02月15日
    浏览(40)
  • Selenium教程__浏览器窗口大小(6)

    本文将介绍如何使用Selenium来获取和设置浏览器窗口的大小,以及一些实际应用场景。 学习本文内容将能够轻松地控制浏览器窗口的大小,从而更好地适应不同的屏幕分辨率和设备,并确保网页在各种窗口大小下都能够良好地展示。  -事必有法,然后有成-  最后祝大家早日

    2024年02月13日
    浏览(47)
  • selenium+python切换浏览器窗口--详细讲解

    在浏览器页面打开窗口后,有时点击按钮会打开新的页面,我们需要切换到新的窗口才能去定位操作,不然无法操作,切换窗口代码如下

    2024年02月14日
    浏览(45)
  • selenium在浏览器定位到下一个窗口

    定位到新打开的页面(窗口): 这里的操作时: 打开拉勾网→定位到地址“北京→搜索框输入“python”进行查找→进入查找结果的第一个连接→定位到新的页面 →关闭新的页面→回到第一个页面

    2024年02月11日
    浏览(48)
  • 从零开始学习Python控制开源Selenium库自动化浏览器操作,实现爬虫,自动化测试等功能(一)

    介绍Selenium : Selenium是一个用于自动化浏览器操作的开源工具和库。它最初是为Web应用测试而创建的,但随着时间的推移,它被广泛用于Web数据抓取和网页自动化操作。Selenium 支持多种编程语言,包括Python,Java,C#等。 这里我们主要实现采用Python的方式 Selenium 的主要特点和

    2024年01月22日
    浏览(71)
  • UI自动化测试之selenium工具(浏览器窗口的切换)

    1、在浏览网页的时候,有时点击一个链接或者按钮,会弹出一个新的窗口。这类窗口也被称之为句柄(一个浏览器窗口的唯一标识符,通过句柄实现不同浏览器窗口之间的切换),在我们手动控制浏览器的时候,产生新的句柄时浏览器会自动的帮我们跳转到最新的句柄处(鼠

    2024年02月02日
    浏览(47)
  • Python控制浏览器——selenium模块

    【1】安装selenium 如果安装慢可以指定用国内源 【2】安装浏览器驱动 Chrome驱动地址:[http://chromedriver.storage.googleapis.com/index.html] Edge驱动安装地址:[https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/?form=MA13LH] Firefox驱动安装地址:[https://github.com/mozilla/geckodriver/releases] 安装成

    2024年04月10日
    浏览(44)
  • selenium 之 控制打开的浏览器

    使用背景: 当我们需要在打开的浏览器中进行自动化操作时需要用到此方法。 1、为了防止污染别的环境(同一个网站多个账号爬取的情况),最好对浏览器使用新的端口创建debug副本。 具体操作如下 (1)右键浏览器创建副本(或者直接复制) (2)在新生成的快捷方式上右

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包