Selenium基础 — 浏览器弹窗操作

这篇具有很好参考价值的文章主要介绍了Selenium基础 — 浏览器弹窗操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、浏览器自带弹窗操作

说明:
webdriver中处理JavaScript所生成的alertconfirm以及prompt弹窗是很简单的。具体思路是使用switch_to.alert()方法定位到alert/confirm/prompt弹窗。然后使用text/accept/dismiss/send_keys方法按需进行操做。
常用操作:

操作 说明
text 返回alert/confirm/prompt 中的文字信息。
accept() 点击弹窗中的确认按钮。(接收警告)
dismiss() 点击弹窗中的取消按钮,如果有的话。(弹窗中的)
send_keys() 输入文本到警告框,alert\confirm 没有对话框就不能用了,不然会报错。

示例:
页面代码片段:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <style type="text/css">
        button {
            padding: 8px;
            background: #f8f8f8;
            border-radius: 5px
        }
    </style>
</head>
<body>
<button type="button_alert" value="alert" id="alert" onclick="al()">button_alert</button>
<br>
<button type="button_confirm" value="confirm" id="confirm" onclick="con()">button_confirm</button>
<br>
<button type="button_prompt" value="prompt" id="prompt" onclick="pro()">button_prompt</button>
<br>

<script>
    function al() {
        alert('你是一个懂得爱自己的人!')
    }

    function con() {
        confirm('你是一个懂得爱自己的人?')
    }

    function pro() {
        prompt('请对自己说一句话!')
    }
</script>
</body>
</html>

脚本代码:

"""
1.学习目标:
    掌握浏览器自带弹窗的处理方法
2.语法(操作步骤):
    2.1 操作触发弹窗的元素
    2.2 获取弹窗(进入弹窗)
        alert = driver.switch_to.alert
    2.3 操作弹窗
        alert.text   获取弹窗文本
        alert.accept() 点击弹窗确定按钮
        alert.dismiss() 点击弹窗取消按钮
        alert.send_keys("输入内容") 在弹窗中输入文字
3.需求
    在页面中,操作浏览器自带弹窗
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os

# 2.打开浏览器
driver = webdriver.Firefox()

# 3.打开页面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)
sleep(2)

# 4.处理浏览器自带弹窗
# 4.1 触发弹窗的元素button_alert,完成text和accept()方法
# 4.1.1 定位alert按钮,触发弹窗
el = driver.find_element_by_id("alert")
el.click()
sleep(2)

# 4.1.2 获取弹窗(进入弹窗)
alert = driver.switch_to.alert

# 4.1.3 获取弹窗文本值
print("弹窗文本值:", alert.text)

# 4.1.4 点击弹窗确定按钮
alert.accept()
sleep(2)

# 4.2 触发弹窗的元素button_confirm,完成dismiss()方法
# 4.2.1 定位confirm按钮,触发弹窗
el = driver.find_element_by_id("confirm")
el.click()
sleep(2)

# 4.2.2 获取弹窗(进入弹窗)
confirm = driver.switch_to.alert

# 4.2.3 获取弹窗文本值
print("弹窗文本值:", confirm.text)

# 4.2.4 点击弹窗取消按钮
confirm.dismiss()
sleep(2)

# 4.3 触发弹窗的元素button_prompt,完成send_keys("输入内容")方法
# 4.3.1 定位prompt按钮,触发弹窗
el = driver.find_element_by_id("prompt")
el.click()
sleep(2)

# 4.3.2 获取弹窗(进入弹窗)
prompt = driver.switch_to.alert

# 4.3.3 获取弹窗文本值
print("弹窗文本值:", prompt.text)

# 4.3.4 点击弹窗确定按钮
prompt.send_keys("怎么显示不了")
sleep(2)

# 4.3.5 点击弹窗确定按钮
prompt.accept()
sleep(2)

# 5.关闭浏览器
driver.quit()

注意:prompt弹窗输入框,Chrome不显示输入文本
Python版本 3.7.7

  • Edge版本:18.18362,没有问题。
  • Firefox版本:76.0.1 (64 位),没有问题。
  • Chrome版本:74.0.3729.131(正式版本)32位,有问题。

2、页面自定义弹窗操作

由于alert弹窗不美观,现在大多数网站都会使用自定义弹窗,使用Selenium自带的方法就驾驭不了了,此时就要搬出JS方法来进行处理。
需求:
需求:去掉淘宝首页的自定义弹窗
淘宝首页的自定义弹窗如下:

Selenium基础 — 浏览器弹窗操作

提示:网页中弹出的对话框,也属于页面自定义弹窗,都可以用下面方式处理。
实现方式:
大家能看到,上图中的这种弹窗就是自定义弹窗的表现形式,处理这种弹窗可以利用HTMLDOMStyle对象中的一个display属性来处理,可以设置元素如何被显示。
将display的值设置成none:此元素不会被显示,就可以去除这个弹窗了。
注意:手动页面刷新之后还会出现弹窗。

步骤如下:

# JavaScript语法
js = 'document.getElementById("div_company_mini").style.display="none";'

# 使用Python执行JS语句
driver.execute_script(js1)

提示:
document.getElementById()是JS获取元素的方式,在JS获取元素方式中,就只有ById()获取的是一个元素。
其他获取元素的方式,都获取的是结果集,需要获取具体元素的时候,注意要使用索引。
简单举例:

  1. 通过ID获取(getElementById)
  2. 通过name属性(getElementsByName)
  3. 通过标签名(getElementsByTagName)
  4. 通过类名(getElementsByClassName)


示例:

"""
1.学习目标:
    了解关闭web页面自定义弹窗
2.语法(操作步骤)
    2.1 找到自定义弹窗的元素,
        修改样式:tyle.display='none'
        display='none'表示不显示样式,目的是将弹窗隐藏
    2.2 操作步骤
        js = document.getElementById("id属性值").style.display="none"
        或者其他的JS获取元素方式
        driver.execute_script(js)
3.需求
    隐藏页面自定义弹窗
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开页面
url = "https://www.taobao.com/"
driver.get(url)
sleep(5)

# 4.关闭自定义弹窗
js = 'document.querySelector("body > div.tbh-fixedtool.J_Module > div").style.display="none"'
driver.execute_script(js)
sleep(2)

# 5.关闭浏览器
driver.quit()

最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了

1、学习思路和方法

这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习

Selenium基础 — 浏览器弹窗操作

2、想学习却无从下手,该如何学习?

这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

Selenium基础 — 浏览器弹窗操作

Selenium基础 — 浏览器弹窗操作

3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....

Selenium基础 — 浏览器弹窗操作

Selenium基础 — 浏览器弹窗操作

Selenium基础 — 浏览器弹窗操作

4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看

Selenium基础 — 浏览器弹窗操作

最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦

Selenium基础 — 浏览器弹窗操作文章来源地址https://www.toymoban.com/news/detail-413924.html

到了这里,关于Selenium基础 — 浏览器弹窗操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows使用selenium操作浏览器爬虫

    以前的大部分程序都是操作Chrome,很少有操作Edge,现在以Edge为例。 Selenium本身是无法直接控制浏览器的,不同的浏览器需要不同的驱动程序,Google Chrome需要安装ChromeDriver、Edge需要安装Microsoft Edge WebDriver,其他浏览器也需要安装相应的驱动。 edge://version/ https://developer.micros

    2024年02月04日
    浏览(34)
  • Selenium(二)对浏览器窗口的操作

    Selenium可以通过WebDriver控制浏览器窗口的各种操作,包括:

    2024年02月09日
    浏览(42)
  • python的浏览器操作-selenium版本4更新操作

    2.浏览器输入:chrome://version/,获取对应版本号 3.下载驱动器版本 http://chromedriver.storage.googleapis.com/index.html 4.把驱动解压,获取驱动地址 5.0.特别注意点:运行前把执行的浏览器窗口全部关闭 5.0.窗口关闭 5.0.关闭 5.1.使用原来插件的运行cmd运行命令: 5.2.使用新的环境,cmd命令

    2024年02月07日
    浏览(46)
  • 补充:selenium操作已打开的浏览器窗口

    1. 打开浏览器 首先来到安装 chrome浏览器 的文件夹下,例:C:Users\\01AppDataLocalGoogleChromeApplication 在此界面打开 cmd窗口, 然后输入:chrome.exe --remote-debugging-port=9527 --user-data-dir=“F:seleniumAutomationProfile” ,并回车。 这句代码的意思是启动 chrome浏览器 的调试模式, user-data

    2023年04月09日
    浏览(33)
  • python使用selenium操作浏览器的教程

    重复的操作令手工测试苦不堪言,于是自动化测试出现了!作为web应用里最出名的自动化测试工具,selenium让web应用的测试轻松了很多。今天我们就来简单的介绍一下一些简单的selenium浏览器操作。接下来我们就来看看python怎么操作浏览器的吧! 我们使用selenium进行自动化测试

    2024年02月05日
    浏览(41)
  • Python使用Selenium模拟浏览器自动操作功能

    概述 在进行网站爬取数据的时候,会发现很多网站都进行了反爬虫的处理,如JS加密,Ajax加密,反Debug等方法,通过请求获取数据和页面展示的内容完全不同,这时候就用到Selenium技术,来模拟浏览器的操作,然后获取数据。本文以一个简单的小例子,简述Python搭配Tkinter和

    2024年01月17日
    浏览(50)
  • Selenium操作已经打开的Chrome浏览器窗口

    在使用之前的代码通过selenium操作Chrome浏览器时,每次都要新打开一个窗口,觉得麻烦,所以尝试使用 Selenium 获取已经打开的浏览器窗口,在此记录下过程 本文使用 chrome浏览器来做示例。 ChromeDriver谷歌浏览器驱动的下载安装与使用,可以参考点击:Selenium安装WebDriver:Chro

    2024年02月05日
    浏览(39)
  • python selenium 模拟浏览器自动操作抢购脚本

    每逢秒杀,都在遗憾网速和手速慢没能抢购到商品吧。 手写一个脚本,让程序帮你抢,抢到的概率会大大提升。 废话不多说,直接上代码。 本实例以华为官网抢购手机为例

    2024年02月09日
    浏览(28)
  • python自动化测试selenium浏览器操作

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包