【selenium】浏览器相关操作

avatar
作者
猴君
阅读量:0

浏览器相关操作

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() 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!