首页 > 其他分享 >selenium 弹框

selenium 弹框

时间:2023-08-08 10:36:14浏览次数:29  
标签:selenium self driver alert switch 弹框 弹窗

Web页面弹窗的分类

弹窗通常有3种:Alert类型弹框、Confirm类型弹框、Prompt类型弹框,这种我们无法通过定位元素来操作。它们的具体特点如下:

  • Alert弹窗:只有信息及确认按钮

  • Confirm弹窗:在Alert弹窗基础上增加了取消按钮

  •  Prompt类型弹框:在Confirm的基础上增加了可输入文本内容的功能

  •  

    selenium中提供了如下方法来处理弹窗,具体的解决方案如下:

    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.switch_to.alert.accept() #确定、同意;三种弹窗都可使用
    driver.switch_to.alert.dismiss() #取消、不同意;confirm和prompt弹窗中使用
    title = driver.switch_to.alert.text #打印弹窗信息
    alert = driver.switch_to.alert #获取alert对象
    alert.send_keys() #Prompt弹窗中输入内容
    

    有些弹窗并非浏览器的alert 窗口,而是html元素,这种对话框只需要按照常规的定位页面元素进行处理即可

  • 实战演练
  • import unittest
    from selenium import webdriver
    from time import sleep
     
    class TestAlert(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Chrome()
            self.driver.implicitly_wait(5)
            self.driver.maximize_window()
     
        def tearDown(self):
            self.driver.quit()
     
        def test_alert(self):
            self.driver.get(r'http://sahitest.com/demo/alertTest.htm')
            self.driver.find_element('name','b1').click()
            alert = self.driver.switch_to.alert
            print(alert.text)
            alert.accept()
            sleep(2)
        def test_confirm(self):
            self.driver.get(r'http://sahitest.com/demo/confirmTest.htm')
            self.driver.find_element('name','b1').click()
            alert = self.driver.switch_to.alert
            print(alert.text)
            alert.accept()
            # alert.dismiss()
            sleep(2)
        def test_prompt(self):
            self.driver.get(r'http://sahitest.com/demo/promptTest.htm')
            self.driver.find_element('name','b1').click()
            alert = self.driver.switch_to.alert
            print(alert.text)
            alert.send_keys("CR77777777777777777")
            sleep(1)
            alert.accept()
            sleep(2)
     
    if __name__ == '__main__':
        unittest.main()

     

标签:selenium,self,driver,alert,switch,弹框,弹窗
From: https://www.cnblogs.com/xujunhui/p/17613500.html

相关文章

  • selenium
    目录一selenium基本使用1.1基本使用1.2百度搜索1.3模拟登录百度二selenium其他用法2.1无头2.2查找标签2.3获取标签属性三selenium等待元素加载selenium元素操作四selenium执行js五selenium高级操作5.1selenium切换选项卡5.2selenium前进后退5.3selenium登录cnblogs5......
  • Selenium简介
    Selenium是一个用于网站应用程序自动化的工具。它可以直接运行在浏览器中,就像真正的用户在操作一样。它支持的浏览器包括IE、MozillaFirefox、Safari、GoogleChrome和Opera等,同时支持多种编程语言,如.Net、Java、Python和Ruby等。安装安装Seleniumpipinstallselenium安装......
  • 爬虫不仅仅selenium自动化,还有这些。。。
    1.DrissionPage这款工具既能控制浏览器,也能收发数据包,甚至能把两者合而为一,简单来说:集合了WEB浏览器自动化的便利性和requests的高效率优点。采用全自研的内核,对比selenium,有以下优点:无webdriver特征,不会被网站识别,无需为不同版本的浏览器下载不同的驱动。运行速度更快,......
  • selenium 无法定位元素的一种情形 - iframe
    今天在爬取一个反爬措施较严格的网站时,使用selenium做自动化登录时,无法定位输入框的问题。查看网页源代码确实没有登录相关元素的标签,可以判定是采用的动态加载,但是即使使用的动态加载,等待页面渲染完毕之后应该还是能定位的。看了下渲染完毕之后的网页源码,发现了在当前html......
  • .NetCore + Selenium IIS 部署踩坑记
    一、问题   使用Selenium+chromedriver开发自动操作页面demo,本地调试使用IISExpress正常,部署到IIS访问接口代码正常执行,但是,但是页面并没有启动二、排查  网上找相似情况大概以下几种 1,chromedriver和chrome的版本不一致 2,IIS用户权限 3,代码写法问题 本......
  • Element-plus组件库的MessageBox 消息弹框组件自定义样式的坑
    一、问题描述:在使用Element-plus组件库的MessageBox消息弹框组件时,需要更改该组件的按钮样式,于是根据官网文档: 找到cancel-button-class、confirm-button-class两个属性,并在js代码中进行了添加,如下案例图: 然后,我在使用该组件的页面写了如下样式:.my-confirm-button{......
  • vue3之父组件中封了子组件的抽屉(弹框类),通过update:modelValue来进行父子组件的v-mod
    eg:父组件a.vue<AddAiDrawer:projectId="route.query.id"v-model="addAiShow"title="新增"type="spaceAi"@call-back-table="refreshTa......
  • 【selenium】获取token及session数据
    UI测试过程中遇到系统其他页面需要登录鉴权,不能每次打开页面都重新进行登录,所以需要保存登录用例时的tokendefsave_session(self,value):"""1.其中localStorage、token关键字是需要根据自己实际情况填写的localStorage:目标系统,需要查看自己的token是存在localStor......
  • 爬虫基本工具:urllib丶requests丶selenium丶pytesseract
    urllib来实现cookie和ip代理1fromurllib.requestimportRequest,build_opener,urlopen2fromfake_useragentimportUserAgent3fromurllib.parseimporturlencode4fromurllib.requestimportHTTPCookieProcessor5fromhttp.cookiejarimportCookieJ......
  • java selenium 截取图片
    JavaSelenium截取图片在自动化测试中,截图是一个非常重要的功能。当测试遇到问题时,截图可以提供有价值的信息来帮助我们分析问题的原因。JavaSelenium提供了一个简单而强大的方法来实现截图功能。本文将介绍如何使用JavaSelenium来截取网页或应用程序的屏幕截图。准备工作在......