pythonUI自动化-01-selenium介绍

配置环境:

1. pycharm安装selenium

        pip install selenium

2. 安装浏览器驱动,放到python.exe同目录下;寻找和浏览器版本相近的(这里用的谷歌)       

   https://chromedriver.storage.googleapis.com/index.html

selenium八大元素定位方法:       

前提: 需要定位的元素或它的属性必须是唯一
八大元素:
    id
    name
    xpath
    css
    link_text
    partail_link_text
    class_name
    tag_name

from selenium import webdriver
from selenium.webdriver.common.by import By
# 获取驱动
driver = webdriver.Chrome()
# 加载网页
driver.get("http://www.baidu.com")
# 定位元素(利于封装)

# id定位
# driver.find_element(By.ID, "kw").send_keys("英汉互译")

# name 属性
# driver.find_element(By.NAME, "wd").send_keys("英汉互译")

# 超链接文本
# driver.find_element(By.LINK_TEXT, "新闻").click()

# 超链接部分文本
# driver.find_element(By.PARTIAL_LINK_TEXT, "闻").click()

# xpath: 复制xpath经常会出错,不是万能的
'''
绝对路径: /开头是绝对路径
        /html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input
相对路径: //开头是相对路径
    //input
        1. 相对路径 + 索引
                一直向上找到一个唯一元素: //form/span[1]/input
        2. 相对路径 + 属性定位
                标签 + [@属性=属性值]: //input[@autocomplete="off"]
                标签 + [@属性=属性值 and / or @属性=属性值]    
        3. 相对路径 + 通配符定位: *
                在网页搜索所有的标签里搜索这个属性,属性必须唯一:  //*[@autocomplete="off"]
                或者把属性名也给成通配符,属性值必须为唯一: //*[@*="off"]
        4. 相对路径 + 部分属性值定位
                属性值以什么开头: //*[starts-with(@autocomplete,'of')]
                截取属性值(从第二个开始到最后): //*[substring(@autocomplete,2)='ff']
                属性值包含:  //*[contains(@autocomplete,'o')]
        5. 相对路径 + 文本定位 ,不是超链接的文本可以使用:
                        全部文本:  //span[text()="按图片搜索"]
                        部分文本:  //span[contains(text(),"图片搜索")]    
                                
'''

# css定位
'''
1. 绝对路径: 也是根元素开始,中间空格间隔
2. 通过id和class定位
3. 通过属性定位
4. 通过部分属性定位
5. 查询子元素定位
6. 查询兄弟节点定位
'''


# 特殊元素:
    1. 有些元素是不可见的: div :style="display:none"
    2. 有些元素是隐藏的 : hidden
    3. 有些元素是不可用的 : disables=disabled 灰色
    4. 有些元素是不可编辑的 : readonly=readonly
    .....

# 特殊场景:
    1. frame /iframe 的场景
    2. 元素完全一样
    3. 多个窗口
    .....

selenium操作:

send_keys("英汉互译") # 输入
click() # 点击
get_attribute("class") # 获取属性值

selenium原生方法:

1. 框架:
   frameset: 框架集(忽略)
   frame(框架)
   iframe(框架)
进入框架
        driver.switch_to.frame("main_workspace")  # 框架name值
        # 出框架

        driver.switch_to.default_content()

2. 下拉框
    # 第一步定位到下拉框元素
    # 第二步转换为Select
    sel = Select(driver.find_element(By.NAME, "businessStyle"))
    # 第三步,定位下拉框元素
    sel.select_by_value("1")  # 根据value定位(推荐)
    # sel.select_by_visible_text("自营")  # 根据文本定位
    # sel.select_by_index("1")  # 根据下标选中

3. 文件上传
        # 1. 先定位
        # 2. 在send_keys里加上文件路径:send_keys(r"D:/123.png")


4.处理弹窗:alert(只有确定);confirm(确定/取消);prompt(确定/取消/输入)
        ale= driver.switch_to.alert
        ale.dismiss() # 取消
        ale.text # 获取弹窗文本
        ale.accept() # 点击确定
        ale.send_keys("") # 输入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值