• Selenium-元素操作、浏览器操作方法


    1.元素操作

    1.1 为什么要学习操作元素的方法?

    1、需要让脚本模拟用户给指定元素输入值
    2、需要让脚本模拟人为删除元素的内容
    3、需要让脚本模拟点击操作

    1.2 元素常用操作方法

    1、click()   				单击元素
    2、send_keys(value) 		模拟输入
    3、clear()					清除文本
    
    • 1
    • 2
    • 3

    1.3 案例

    “”“
    	需求:
    		1、通过脚本执行输入用户名:admin;密码:123456;电话号码:18611111111;电子邮件:123@qq.com 
    		2、间隔3秒,修改电话号码为:18600000000
    		3、间隔3秒,点击‘注册’按钮 
    		4、间隔3秒,关闭浏览器 
    		5、元素定位方法不限
    ”“”
    
    
    # 导包
    from selenium import webdriver
    from time import sleep
    
    # 获取浏览器驱动对象
    driver = webdriver.Firefox()
    
    # 打开url
    url = r"D:\web自动化素材\课堂素材\注册A.html"
    driver.get(url)
    # 输入 admin
    driver.find_element_by_css_selector("#userA").send_keys("admin")
    # 输入 密码 123456
    driver.find_element_by_css_selector("#passwordA").send_keys("123456")
    
    # 输入 电话 18611112222
    driver.find_element_by_css_selector(".telA").send_keys("18611112222")
    
    # 输入 邮箱 123@qq.com
    driver.find_element_by_css_selector("#emailA").send_keys("123@qq.com")
    
    # 暂停2秒
    sleep(2)
    
    # 修改电话号码 18622223333  -->清空操作
    # driver.find_element_by_css_selector(".telA").clear()
    driver.find_element_by_css_selector(".telA").send_keys("18622223333")
    # 暂停2秒
    sleep(2)
    # 点击注册按钮
    driver.find_element_by_css_selector("button").click()
    # 暂停 2
    sleep(2)
    # 关闭驱动对象
    driver.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    2、浏览器操作

    脚本启动浏览器窗口大小默认是不是全屏?
    如何刷新页面?

    2.1 操作浏览器常用方法

    1、maxmize_window()						最大化浏览器窗口 --> 模拟浏览器最大化按钮
    2、set_window_size(width, height)		设置浏览器窗口大小 --> 设置浏览器宽、高(像素点)
    3、set_window_position(x, y)			设置浏览器窗口位置 --> 设置浏览器位置
    4、back()								后退 --> 模拟浏览器后退按钮
    5、forward()							前进 --> 模拟浏览器前进按钮
    6、refresh()							刷新 --> 模拟浏览器F5刷新
    7、close()								关闭当前窗口 --> 模拟点击浏览器关闭按钮
    8、quit()								关闭浏览器驱动对象 --> 关闭所有程序启动的窗口
    9、title								获取页面title
    10、current_url							获取当前页面URL
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.2 示例代码

    # 导包
    from selenium import webdriver
    from time import sleep
    
    # 获取浏览器驱动对象
    driver = webdriver.Firefox()
    # 打开url
    url = r"D:\web自动化素材\课堂素材\注册A.html"
    driver.get(url)
    
    # 将浏览器 最大化
    driver.maximize_window()
    # 暂停2秒
    sleep(2)
    # 设置固定大小 300,200
    driver.set_window_size(300, 200)
    # 暂停2秒
    sleep(2)
    # 移动浏览器窗口位置 x:320,y:150
    driver.set_window_position(320, 150)
    # 暂停2秒
    sleep(2)
    # 最大化
    driver.maximize_window()
    # 点击 访问新浪网站  注意:要演示后退功能,必须先执行打开新的网站
    driver.find_element_by_partial_link_text("访问").click()
    # 暂停2秒
    sleep(2)
    # 执行后退 ---> 注册A.html
    driver.back()
    # 暂停2秒
    sleep(2)
    # 执行前进 -->新浪 注意:前进必须放到后退操后执行
    driver.forward()
    
    
    # 暂停 2
    sleep(2)
    # 关闭驱动对象
    driver.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    3、获取元素信息

    3.1 为什么要学习获取元素信息的方法?

    1、如何获取元素的文本?
    2、如何获取元素的属性值?
    3、如何让程序判断元素是否为可见状态?

    3.2 获取元素信息的常用方法

    1. size 					返回元素大小 
    2. text 					获取元素的文本 
    3. get_attribute("xxx") 	获取属性值,传递的参数为元素的属性名 
    4. is_displayed() 			判断元素是否可见 
    5. is_enabled() 			判断元素是否可用 
    6. is_selected() 			判断元素是否选中,用来检查复选框或单选按钮是否被选中 
    
    提示:1. size、text:为属性,调用时无括号;如:xxx.size
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.3 案例

    # 导包
    from selenium import webdriver
    from time import sleep
    
    # 获取浏览器驱动对象
    driver = webdriver.Firefox()
    # 将浏览器 最大化
    # driver.maximize_window()
    # 打开url
    url = r"D:\web自动化素材\课堂素材\注册实例.html"
    driver.get(url)
    
    # 获取用户名文本框大小
    size = driver.find_element_by_css_selector("#user").size
    print("用户名大小为:", size)
    # 获取页面上第一个超文本连接内容
    text = driver.find_element_by_css_selector("a").text
    print("页面中第一个a标签为:", text)
    # 获取页面上第一个超文本链接地址 get_attribute("href")
    att = driver.find_element_by_css_selector("a").get_attribute("href")
    print("页面中第一个a标签为href属性值为:", att)
    
    # 判断 span元素是否可见
    display = driver.find_element_by_css_selector("span").is_displayed()
    print("span元素是否可见:", display)
    
    # 判断 取消按钮是否可用
    enabled = driver.find_element_by_css_selector("#cancel").is_enabled()
    print("取消按钮是否可用:", enabled)
    
    # 选中旅游按钮
    driver.find_element_by_css_selector("#ly").click()
    
    # 判断旅游是否被选中
    selected = driver.find_element_by_css_selector("#ly").is_selected()
    print("旅游是否被选中:", selected)
    
    
    # 暂停 2
    sleep(2)
    # 关闭驱动对象
    driver.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
  • 相关阅读:
    DHP16P-10-05A/100T-BC、DHP16P-10-23A/35ET-BB电液比例式2级放大式方向控制阀放大器
    数仓问答篇(一)
    微信小程序——后台交互
    SAP FIORI专题之四:使用fiori element构建over page
    【SpringBoot】请求参数处理 —— Rest使用与原理
    JS进阶-函数剩余参数
    给博客园的寄语
    性能测试-如何进行监控设计
    动态增删kdtree(ikdtree)主要思路
    双向链表遍历以及增删改查操作(思路分析) [数据结构][Java]
  • 原文地址:https://blog.csdn.net/weixin_44244493/article/details/126669412