文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python-selenum3 第六天—

2023-01-31 05:41

关注

1.循环遍历所有的下拉列表值
2.单选下拉列表
3.多选择列表的选中与取消
4.操作单选框、多选框以及断言及全部选中
5.断言页面源码中的关键字
6.截屏
7.拖拽页面元素


1. 循环遍历所有的下拉列表值

   <!--练习的html-->
     学历:<select id="zz" name="ss" size="1">
                   <option value ="you">幼儿园</option>
                   <option value ="xiao">小学</option>
                   <option value ="chu">初中</option>
                   <option value ="gao">高中</option>
                   <option value ="da">大学</option>
              </select>
from selenium import webdriver
#导入select模块
from selenium.webdriver.support.select import Select
driver  = webdriver.Firefox(executable_path="d:\\geckodriver")
url = "file:///d:/day8.html"
driver.get(url)
#定位下拉菜单
select_element = driver.find_element_by_id("zz")
#将所有的内容保存并赋值给options   注意这里是所有元素 所以用elements
options = select_element.find_elements_by_tag_name("option")
#循环显示加打印
for option in options:
    print("选项显示的文本:",option.text)
    print("选项值为:",option.get_attribute("value"))
    option.click()
    import time
    time.sleep(1)

2.单选下拉列表

from selenium import webdriver
from selenium.webdriver.support.select import Select
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("file:///d:/day8.html")
#定位下拉菜单
xiala = driver.find_element_by_id("zz")
#通过序号选择,序号从0开始,2为初中
Select(xiala).select_by_index(2)
#通过value属性值选择,选择高中
Select(xiala).select_by_value("gao")
#通过文本值选择,直接选择大学
Select(xiala).select_by_visible_text(u"大学")

3.多选择列表的选中与取消

   <!--练习的html-->
             学历:<select id="zz" name="ss" size="6" multiple="true">
                   <option value ="you">幼儿园</option>
                   <option value ="xiao">小学</option>
                   <option value ="chu">初中</option>
                   <option value ="gao">高中</option>
                   <option value ="da">大学</option>
              </select>
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("file:///d:/day8.html")
#定位下拉菜单
xiala = driver.find_element_by_id("zz")
#多选后为选择初中、高中、大学
Select(xiala).select_by_index(2)
Select(xiala).select_by_value("gao")
Select(xiala).select_by_visible_text(u"大学")
#取消已经选择的内容(下面简写了,比选择多加了个de而已,最后一个是取消所有已经选中)
Select(xiala).deselect_by_index(2)
Select(xiala).deselect_by_value("gao")
Select(xiala).deselect_by_visible_text(u"大学")
Select(xiala).deselect_all()

4.操作单选框、多选框以及断言及全部选中

   <!--练习的html-->

      <!--单选--> <p>
             性别:男<input type="radio" name="r1" checked/>
                   女<input type="radio" name="r1" />
                   不明<input type="radio" name="r1" />
           </p>
    <!--多选-->  <p>
             爱好:游戏<input type="checkbox" name="c1" checked/>
                   文艺<input type="checkbox" name="c2" />
                   睡觉<input type="checkbox" name="c3" />
           </p>
from selenium import webdriver
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("file:///d:/day8.html")
#最简单的单选和多选,直接点击选择框即可 下面为单选女的选择点击
xuanzhong = driver.find_element_by_xpath("/html/body/form/p[2]/input[2]")
xuanzhong.click()
#断言是否被选中(选择需要配合框架使用)
assertTrue(xuanzhong.is_selected(),u"女没有被选中")
#一次性将所有的多选选项全部选择(一定要注意因为一次性多选所以是elements)
#注意:因为游戏是默认,所以在次点击等于取消了选择,下面结果为选中文艺和睡觉
duoxuan = driver.find_elements_by_xpath(".//*[@type='checkbox']")
for i in duoxuan:
    i.click()

5.断言页面源码中的关键字

from selenium import webdriver
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("WIKTK")
driver.find_element_by_id("su").click()
import time
time.sleep(4)
#断言页面源码中的关键字
assert "WIKTK" in driver.page_source, u"页面中源码中不存在该关键字"

6.截屏

from selenium import webdriver
driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("https://www.baidu.com")
driver.save_screenshot(r"d:\截图.png")

7.拖拽页面元素

http://jqueryui.com/resources/demos/draggable/scroll.html
from selenium import webdriver
driver = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
driver.get("http://jqueryui.com/resources/demos/draggable/scroll.html")
#定位第一、第二、第三拖动框体
yi = driver.find_element_by_id("draggable")
er = driver.find_element_by_id("draggable2")
san = driver.find_element_by_id("draggable3")

#导入拖拽元素方法模块
from selenium.webdriver import ActionChains

a_chains = ActionChains(driver)
#第一个框拖动到第二个框
a_chains.drag_and_drop(yi, er).perform()
#将第三个框平移500
a_chains.drag_and_drop_by_offset(san,500, 0).perform()
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯