Selenium - 浏览器控制

前面几篇介绍了元素定位相关的方法,从这一篇开始会介绍得到元素对象后的各种操作方法。web自动化的难点就是如何准确稳定地获得元素对象,之后的操作就显得容易很多,浏览一下API的文档做一下搬运工就能实现。 俗话说授之以鱼不如授之以渔,给出python的webdriver API的文档地址供大家学习,这里则选取一些常用的方法通过举例帮助大家知道如何运用。

今天主要介绍一下浏览器控制的一些常用属性和方法,他们大多集中在selenium.webdriver.remote.webdriver类中。不管是用哪种浏览器,他们都继承自remote.webdriver类,用的方法属性都是相同的。先列举几个常见的属性。

current_url: 返回当前浏览器的url

title: 返回当前页面title

current_window_handler:返回当前窗口的句柄,这在多窗口切换的时候会用到

window_handlers: 返回当前浏览器的所有窗口的句柄。下面举个多窗口切换的例子。

driver = webdriver.Firefox()
# 打开网页
driver.get('https://www.baidu.com')
# 获取主页窗口的句柄
search_window = driver.current_window_handle
# 打开新窗口   
 driver.find_element_by_xpath("//map[@name='mp']/area").click()
# 获取所有窗口的句柄
all_windows = driver.window_handles
sleep(3)
# 遍历所有句柄,如果和主页句柄相同则切换回主页
for window in all_windows:
    if window == search_window:
        driver.switch_to.window(window)          

一下是常见的控制浏览器的方法:

get(url): 加载指定的网页

back()/forward(): 对应于浏览器的向前向后按钮

implicitly_wait(time): 隐式等待,在元素被找到前的等待时间,time的单位是秒。它的作用域是全局的,一个session只用设置一次,任意元素如果在指定时间内没有被找到则抛错。会用单独一篇来介绍元素等待的话题,在这里就不详细解释了

close(): 关闭当前的窗口

quit(): 关闭整个浏览器,所有的窗口都会关闭

refresh(): 刷新网页

get_screenshot_as_file(filename): 保存浏览器的截图到一个png文件, 这里要注意filename需要是一个完整的路径,例如/Users/jack/Downloads/screenshot.png.

set_window_position(x,y,windowHandle='current'): x,y的单位是像素,设置浏览器的位置。get_window_position()则可以获得浏览器当前的位置。

set_window_size(width,height, windowHandle='current'): width, height的单位是像素,设置浏览器的长宽。get_window_size()可以获得浏览器的尺寸。

maximize_window(): 最大化窗口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Selenium是一个广泛使用的自动化测试工具,它可以模拟用户操作浏览器,包括打开网页、填写表单、点击按钮等。然而,直接控制浏览器插件的功能并非Selenium的核心功能,因为Selenium主要是设计用来控制预装在浏览器中的功能,比如ChromeDriver或FirefoxDriver。 如果你想使用Selenium浏览器插件交互,通常情况下,这可能涉及到浏览器扩展API,比如Google Chrome的WebExtension API或者Mozilla Firefox的相应插件API。这些API允许你在浏览器环境中编写JavaScript代码,然后通过Selenium调用这些代码来间接控制插件的行为。 以下是一个简单的示例,展示如何使用Selenium通过ChromeDriver与一个允许通过JavaScript控制的插件交互(假设插件提供了一个名为`executePluginCommand`的方法): ```python from selenium import webdriver from selenium.webdriver.chrome.options import Options # 首先,创建一个ChromeOptions对象,并添加参数支持插件 chrome_options = Options() chrome_options.add_argument("--load-extension=/path/to/your/plugin") # 启动Chrome浏览器,加载插件 driver = webdriver.Chrome(chrome_options=chrome_options) # 然后,你可以这样调用插件的方法: driver.execute_script("window.plugins.executePluginCommand('your_command', {}, response => console.log(response))") # 请注意,这只是一个示例,实际代码可能会因插件的不同而有所变化 # 在`executePluginCommand`的实际使用中,`your_command`、参数和回调函数都需要替换为插件文档中指定的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值