首页 > 编程语言 > 详细

python+selenium- 浏览器的常用操作

时间:2021-03-12 18:47:32      阅读:41      评论:0      收藏:0      [点我收藏+]

浏览器一些常用属性和方法,包括控制窗口大小、页面前进后退、页面刷新、打开或关闭标签页、滚动条等等

1设置浏览器大小

import time
from selenium import webdriver


# 浏览器实例化
driver = webdriver.Chrome()

 # 把浏览器窗口最大化
driver.maximize_window()  

 # 把浏览器窗口最小化
driver.minimize_window()

# 设置浏览器窗口大小,长、宽作为参数传递进去,单位:像素
driver.set_window_size(500,800)

# 获取浏览器大小
size = driver.get_window_size()
print(size)

time.sleep(5)
driver.quit()

 

2前进/后退/刷新

import time
from selenium import webdriver


# 浏览器实例化
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_xpath("//input[@id=‘kw‘]").send_keys("selenium")
driver.find_element_by_xpath("//input[@id=‘su‘]").click()
time.sleep(2)

# 后退
driver.back()
time.sleep(2)
# 前进
driver.forward()
time.sleep(2)
# 刷新
driver.refresh()
time.sleep(2)

time.sleep(5)
driver.quit()

 

3获取浏览器相关信息

from selenium import webdriver


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

# 获取浏览器名称
print(driver.name)

# 获取网页的 URL 地址
print(driver.current_url)

# 获取网页的标题
print(driver.title)

# 获取网页的源代码
print(driver.page_source)

 

4标签页切换

? 在页面中点击某个链接之后,可能就会打开一个新的标签页,Chromedriver驱动是不会主动帮我们去切换。多标签页出现后,如果要做下一步操作,需要先切换浏览器标签页。所有切换动作都是用switch_to语句,标签页切换关键代码:

import time
from selenium import webdriver


# 启动Chromedriver,并与Chromedriver开启会话
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
driver.find_element_by_id(kw).send_keys("selenium")
driver.find_element_by_id(su).click()

# 获取当前标签页句柄
wins = driver.current_window_handle
print(当前标签页:, wins)

# 点击其中一个百度结果,出现一个新标签页
driver.find_element_by_xpath(//h3[@class="t c-gap-bottom-small"]//a).click()
time.sleep(2)

# 获取当前所有标签页句柄
wins = driver.window_handles    # 返回的是一个列表,按照标签页打开的顺序
print(所有标签页1:, wins)

# 切换到第一个标签页
driver.switch_to.window(wins[0])
time.sleep(2)

# 打开新的标签页
js = window.open("https://www.cnblogs.com/miki-peng/")
driver.execute_script(js)
time.sleep(2)

# 再次获取当前所有标签页句柄
wins = driver.window_handles
print(所有标签页2:, wins)

# 关闭当前标签页
driver.close()

time.sleep(3)
driver.quit()  # 关闭浏览器,kill掉chromedriver进程

 

小思考??:

? 由于selenium中没有提供打开标签页的方法,但它是支持执行js语句的噢,因此可以通过js来操作。在实际应用中我们打开新的标签页是通过鼠标点击浏览器的"+"号,除了这种方法,还可以怎么打开新标签页

5控制滚动条

? 一般元素定位,元素如果不在浏览器的可视位置(即可见只是不在可视位置),会自动把元素滚动到可视位置,但也有不会自己滚动的(比较少),那我们就可以用selenium的ele.location_once_scrolled_into_view()就可以滚动到某个元素处,也就是滚动直到这个元素出现在屏幕里。除了这种方式以外,也可以用js来滚动窗口。

? selenium提供了execute_script方法来执行js语句,几种滚动方式如下:

? ??1、移动元素element对象,与当前窗口的底部对齐

ele = driver.find_element_by_xpath(‘//h3[@class="t c-gap-bottom-small"]//a‘) driver.execute_script("arguments[0].scrollIntoView(false);",ele)

? ??2、移动元素element对象,与当前窗口的顶部对齐

driver.execute_script("arguments[0].scrollIntoView();",ele)

? ??3、把页面移动到底部

driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

? ??4、把页面移动到顶部

driver.execute_script("window.scrollTo(document.body.scrollHeight,0)")

python+selenium- 浏览器的常用操作

原文:https://www.cnblogs.com/liangcr/p/14524854.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!