发布时间:2025-12-09 11:46:46 浏览次数:1
https://github.com/SeleniumHQ/selenium
1 from selenium import webdriver 2 from selenium.webdriver.support.select import select 3 # 包 包 包 模块 类 4 import time 5 6 7 driver=webdriver.Chrome() 8 driver.maximize_window() 9 driver.get("file:///D:/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%AD%A6%E4%B9%A0/index(1).html")10 nr=driver.find_element_by_id("nr")11 obj=select(webelement=nr)12 time.sleep(2)13 #索引方式14 obj.select_by_index(2)15 #文本方式16 obj.select_by_visible_text("Java语言")17 #val方式18 obj.select_by_value("Java")19 time.sleep(2)20 driver.quit()View Code(把整个html文件直接拖到浏览器的网址处,然后复制获取这个地址栏的内容)
1、先导入select类
2、首先对select类进行实例化
3、定位到下拉框的元素属性
4、使用select类进行实例化后的对象调用该类里面的方法'''
以html文件中的Java为例:
#索引方式
.select_by_index(2)
#文本方式
.select_by_visible_text("Java语言")
#val方式
.select_by_value("Java")
https://element.eleme.cn/#/zh-CN
1 from selenium import webdriver 2 import time 3 4 '''确定取消按钮''' 5 driver=webdriver.Chrome() 6 driver.maximize_window() 7 driver.get("file:///D:/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%AD%A6%E4%B9%A0/%E5%B7%A5%E5%85%B7/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E7%A1%AE%E5%AE%9A%E5%8F%96%E6%B6%88%E6%B6%88%E6%81%AF.html") 8 time.sleep(3) 9 driver.find_element_by_tag_name("input").click()10 time.sleep(3)11 #点击确定操作12 driver.switch_to.alert.accept()13 time.sleep(3)14 #页面刷新15 driver.refresh()16 driver.find_element_by_tag_name("input").click()17 time.sleep(3)18 #点击取消操作19 driver.switch_to.alert.dismiss()20 time.sleep(3)21 driver.quit()22 23 '''获取警告框的文本信息'''24 driver=webdriver.Chrome()25 driver.maximize_window()26 driver.get("file:///D:/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%AD%A6%E4%B9%A0/%E5%B7%A5%E5%85%B7/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E8%AD%A6%E5%91%8A%E6%A1%86.html")27 time.sleep(3)28 print(driver.switch_to.alert.text)29 time.sleep(3)30 driver.quit()31 32 '''消息对话框'''33 driver=webdriver.Chrome()34 driver.maximize_window()35 driver.get("file:///D:/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%AD%A6%E4%B9%A0/%E5%B7%A5%E5%85%B7/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E6%B6%88%E6%81%AF%E5%AF%B9%E8%AF%9D%E6%A1%86.html")36 time.sleep(3)37 #点击按钮38 driver.find_element_by_tag_name("input").click()39 time.sleep(3)40 #输入内容41 driver.switch_to.alert.send_keys("WEB自动化测试")42 time.sleep(3)43 #点击确定44 driver.switch_to.alert.accept()45 time.sleep(3)46 #刷新47 driver.refresh()48 driver.find_element_by_tag_name("input").click()49 time.sleep(3)50 driver.switch_to.alert.send_keys("WEB自动化测试")51 time.sleep(3)52 #点击取消53 driver.switch_to.alert.dismiss()54 time.sleep(2)55 driver.quit()View Codetext:获取弹出框的文本信息
accept:是接受Confirm弹出框
dismiss:是拒绝接受Confirm弹出框
send_keys:是在Prompt消息对话框里面输入想要输入的内容
.switch_to.alert.accept() 确定
.switch_to.alert.dismiss() 取消
.switch_to.alert.text
1 from selenium import webdriver 2 import time as t 3 4 driver=webdriver.Chrome() 5 driver.maximize_window() 6 driver.get("https://file.qq.com/") 7 t.sleep(6) 8 #进入到第一层的iFrame 9 driver.switch_to.frame("login_frame1") #ID方法进入iframe10 t.sleep(3)11 #进入到第二层的iFrame12 driver.switch_to.frame(0) #索引方法进入iframe(这里的索引指的是此iframe在同层级iframe中的位置)13 t.sleep(3)14 driver.find_element_by_xpath("/html/body/p[1]/p[9]/a[1]").click()15 t.sleep(3)16 driver.find_element_by_id("u").send_keys("513399690@qq.com")17 t.sleep(2)18 driver.quit()View Code1、先进入到iFrame的框架
(如果frame有多层,需要一层层进入。进入的方法有三种)
2、然后再定位框架里面的元素属性
当你使用了所有的元素定位的方式并且都是正确的,但是就是提示找不到。那么这个查看源码是否存在iFrame的框架。
如果存在,通过三种方式可以进入到iFrame的框架:
1、通过ID
2、通过索引(使用索引进入框架时,需要注意索引是同层级中我们的目标iframe的索引,不要跨级去看索引了)
3、通过name(基本不使用)
先导入类----实例化-----方法
1 from selenium import webdriver 2 from selenium.webdriver.common.action_chains import ActionChains 3 import time as t 4 5 '''鼠标悬浮''' 6 driver=webdriver.Chrome() 7 driver.maximize_window() 8 driver.get("https://www.baidu.com") 9 #鼠标事件实例化10 obj=ActionChains(driver=driver)11 #要定位的元素属性的对象12 setting=driver.find_element_by_xpath("/html/body/p[1]/p[1]/p[4]/span") #“设置”的位置13 obj.move_to_element(setting).perform() #把鼠标移动到“设置”14 t.sleep(5)15 #点击“搜索设置”16 driver.find_element_by_xpath("/html/body/p[1]/p[1]/p[4]/p[1]/p/a[1]/span").click()17 t.sleep(5)18 driver.quit()19 20 '''右键的操作'''21 driver=webdriver.Chrome()22 driver.maximize_window()23 driver.get("https://www.baidu.com")24 #鼠标事件进行实例化25 obj=ActionChains(driver=driver)26 so=driver.find_element_by_id("kw") #id定位百度搜索框27 obj.context_click(so).perform() #对 百度搜索框右键操作28 t.sleep(3)29 driver.quit()30 31 '''鼠标双击操作'''32 driver=webdriver.Chrome()33 driver.maximize_window()34 driver.get("https://www.baidu.com")35 obj=ActionChains(driver=driver)36 t.sleep(3)37 driver.find_element_by_id("kw").send_keys("软件测试") #在搜索栏输入内容38 t.sleep(3)39 soButton=driver.find_element_by_id("su") #定位到“百度一下”40 obj.double_click(soButton).perform() #双击“百度一下”41 t.sleep(5)42 driver.quit()View Code类实例化对象.move_to_element(元素).perform()
类实例化对象.context_click(元素).perform()
场景:比如付款时的立即支付按钮,双击两次会不会出现两份账单,这些都是测试人员需要测试的。
类实例化对象.double_click(元素).perform()