【selenium】浏览器相关操作
创始人
2024-11-14 18:35:28
0

浏览器相关操作

    • 1.浏览器常用方法
    • 2.多窗口切换
    • 3.警告框处理
      • 三种不同的弹窗区别
      • 弹窗的常用方法和示例

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

相关内容

热门资讯

4分钟理解!gg发牌控制(透视... 4分钟理解!gg发牌控制(透视)就是真的有挂(2022已更新)(哔哩哔哩)1、进入游戏-大厅左侧-新...
八分钟理解!(哈糖大菠萝)软件... 八分钟理解!(哈糖大菠萝)软件透明挂黑科技,wpk发牌这离谱,必胜教程(有挂普及)-哔哩哔哩1、wp...
5分钟了解!wepower辅助... 5分钟了解!wepower辅助软件(透明黑科技)本来真的有挂(2024已更新)(哔哩哔哩)1、金币登...
透视长期!aapoker软件a... 透视长期!aapoker软件app,德扑之心免费透视,wepoker作弊辅助挂(有挂脚本)aapok...
四分钟了解!(aaPOKER)... 四分钟了解!(aaPOKER)软件透明挂黑科技,gg扑克有辅助,科技教程(有挂揭秘)-哔哩哔哩;1、...
3分钟安装!线上德州辅助软件有... 3分钟安装!线上德州辅助软件有用吗(黑科技)就是真的有挂(2022已更新)(哔哩哔哩);1、完成线上...
透视大厅房!智星德州有挂吗,w... 透视大厅房!智星德州有挂吗,wepokre辅助透视软件,wepoker透视软件下载(有挂APP);一...
八分钟推荐!德扑之星如何开房间... 八分钟推荐!德扑之星如何开房间(透视)原来真的有挂(2025已更新)(哔哩哔哩)1、上手简单,内置详...
5分钟体悟!(约局吧)软件透明... 5分钟体悟!(约局吧)软件透明挂黑科技,wpk微扑克俱乐部,可靠教程(有挂科研)-哔哩哔哩;wpk微...
透视俱乐部!wepoke软件透... 透视俱乐部!wepoke软件透明挂辅助,wpk模拟器是什么,德扑之星是不是有人用挂(有挂脚本)透视俱...