【selenium】浏览器相关操作

1.浏览器常用方法

  • 设置浏览器大小为宽600,高800 driver.set_window_size(600,800)
  • 设置浏览器显示最大 driver.maximize_window()
  • 设置浏览器前进: deiver.forward()
  • 设置浏览器后退: deiver.back()
  • 刷新浏览器 :driver.refresh()
  • 获取当前页面的title driver.title
  • 获取当前页面的URL driver.current_url
  • 退出浏览器 driver.quit()

2.多窗口切换

  • 获取当前窗口句柄 : driver.current_window_handle
  • 获取所有窗口句柄: driver.window_handles
  • 切换窗口 : driver.swich_to_window( )
  • 关闭窗口: driver.close()
  • 窗口截图(一般用于报错的时候进行截图,帮助定位bug): driver.get_screenshot_as_file("./imgs/test.png")

使用示例:

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

def switch_windows():
    # 创建 WebDriver 实例
    driver = webdriver.Chrome()

    # 打开第一个页面
    driver.get('https://www.example1.com')

    # 点击链接打开新窗口
    driver.find_element(By.LINK_TEXT, 'Open New Window').click()

    # 获取当前所有窗口的句柄
    window_handles = driver.window_handles

    # 切换到新窗口
    driver.switch_to.window(window_handles[1])

    # 在新窗口中进行操作
    print(driver.title)
   
    # 截图当前窗口,并保存为图片到当前目录imgs/test.png
    driver.get_screenshot_as_file("./imgs/test.png") 
    
    # 关闭新窗口
    driver.close()

    # 切换回原来的窗口
    driver.switch_to.window(window_handles[0])

    # 继续在原窗口操作

    # 关闭浏览器
    driver.quit()

if __name__ == "__main__":
    switch_windows()

3.警告框处理

三种不同的弹窗区别

  1. alert 弹出框:
  • 用途:主要用于向用户显示一条简单的消息。
  • 特点:
    只有一个“确定”按钮,用户无法输入任何信息。
    会阻塞当前页面的执行,直到用户点击“确定”按钮。
  1. confirm 弹出框:
  • 用途:用于向用户询问一个问题,并要求用户确认或取消。
  • 特点:
    提供“确定”和“取消”两个按钮。
    点击“确定”返回 true,点击“取消”返回 false
  1. prompt 弹出框:
  • 用途:用于提示用户输入一些文本信息。
  • 特点:
    显示一个输入框和“确定”、“取消”按钮。
    点击“确定”返回用户输入的文本,点击“取消”返回 null

弹窗的常用方法和示例

  • 接受弹窗: alert.accept()
  • 解散现有弹窗 confirm.dismiss()
  • 发送文本到警告窗 prompt.send_keys("Hello, World!")
  • 切换到弹窗 alert = driver.switch_to.alert
  • 获取弹窗的文本 alert_text = alert.text

使用示例 (示例中的 alert_demo.html 可在本文资源中进行下载)

import time,os
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
file_path ='file:///'+ os.path.abspath('alert_demo.html')
driver.get(file_path)

# 获取三个按钮元素,点击按钮后会展示对应的弹窗
alert_button  = driver.find_element(By.ID, 'alert_button')
confirm_button  = driver.find_element(By.ID, 'confirm_button')
permot_button  = driver.find_element(By.ID, 'permot_button')

# 获取alert 弹窗,并接受
alert_button.click()
alert = driver.switch_to.alert
time.sleep(5) #设置休眠是为了减缓速度,便于观察
alert.accept() # 接收弹窗

# 获取confirm并点击取消
confirm_button.click()
alert = driver.switch_to.alert
print("confirm中的内容是:",alert.text)
time.sleep(5)
alert.dismiss()


# 获取permot 并输出文字:test
permot_button.click()
alert = driver.switch_to.alert
alert.send_keys("今天天气阴")
time.sleep(5)
alert.accept()


# 完成操作后,关闭WebDriver
time.sleep(10)
driver.quit()
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium浏览器复用是指通过Selenium WebDriver在同一会话中重复使用已经启动的浏览器实例。这样可以提高测试效率和性能,减少测试执行时间。 实现Selenium浏览器复用的步骤如下: 1. 启动浏览器实例:使用WebDriver执行启动浏览器的代码,例如使用ChromeDriver启动Chrome浏览器或者使用FirefoxDriver启动Firefox浏览器。 2. 打开目标URL:使用WebDriver执行打开指定URL的代码,可以使用get方法或者navigate方法打开一个URL。 3. 复用浏览器实例:在测试或者操作完成后,不要关闭浏览器实例,而是保持其处于打开状态。在下一次测试或者操作时,可以直接使用复用的浏览器实例,无需再次启动新的浏览器。 4. 清理测试环境:在测试全部执行完毕后,可以选择关闭所有打开的浏览器实例,释放资源,并保持测试环境的干净整洁。 Selenium浏览器复用的优点包括: 1. 提高执行效率:由于浏览器实例已经启动,无需每次都创建新的浏览器实例,可以节省启动时间和资源。 2. 减少测试执行时间:复用浏览器实例可以减少每个测试用例的前置准备工作,加快测试用例的执行速度。 3. 简化测试流程:复用浏览器实例可以避免重复打开和关闭浏览器操作,简化测试用例的实现过程。 需要注意的是,在Selenium浏览器复用过程中,应当注意处理并发访问问题,确保测试用例之间不会相互影响。另外,一些浏览器可能不支持复用实例,需要根据具体的浏览器浏览器驱动版本进行测试和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值