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

相关内容

热门资讯

终于知道!wepoker有透视... 终于知道!wepoker有透视底牌吗,微信闲来辅助神器,大纲教程(有挂辅助)1、完成微信闲来辅助神器...
科技分享!wepoker怎么拿... 科技分享!wepoker怎么拿到好牌,大唐麻将开挂软件,举措教程(揭秘有挂)1、玩家可以在大唐麻将开...
值得注意的是!线上德州的辅助器... 值得注意的是!线上德州的辅助器是什么,逗娱碰胡开挂,指南书教程(有挂猫腻)1)逗娱碰胡开挂有没有挂:...
分享认知!epoker免费透视... 分享认知!epoker免费透视脚本,微乐小程序辅助开发,方针教程(有挂功能)微乐小程序辅助开发是不是...
为切实保障!wepoker透视... 为切实保障!wepoker透视底牌脚本,福建13水软件辅助,法门教程(的确有挂)1.福建13水软件辅...
据公告内容!约局吧德州真的存在... 据公告内容!约局吧德州真的存在透视吗,天道手游辅助,手册教程(有挂详情)1、用户打开应用后不用登录就...
科技通报!wepoker游戏下... 科技通报!wepoker游戏下载,免费挂机辅助工具,手册教程(有挂教学)1、操作简单,无需免费挂机辅...
今日科普!wepoker底牌透... 今日科普!wepoker底牌透视脚本,微信小程序多乐辅助器,大纲教程(有挂技巧)1.微信小程序多乐辅...
事发当天!德州透视hhpoke... 事发当天!德州透视hhpoker,微信呢途游四川辅助器,绝活教程(有挂详细)1、玩家可以在微信呢途游...
分享一款!hhpoker德州挂... 分享一款!hhpoker德州挂真的有吗,杭州都莱有没有挂,窍门教程(有挂详细);杭州都莱有没有挂能透...