zoukankan      html  css  js  c++  java
  • Selenium自动化测试(二)之selenium使用和元素定位

    Selenium自动化测试(二)之selenium使用和元素定位

    (一)selenium的简单使用

    1、导包

    from selenium import webdriver
    

    2、初始化浏览器

    # 驱动在python环境中
    browser = webdriver.Chrome()
    # 驱动不放在python环境中,添加executable_path关键字
    browser = webdriver.Chrome(executable_path=r"D:chromedriver.exe")
    
    

    3、打开网址

    browser.get("http://www.baidu.com")
    

    4、对浏览器的一些简单操作

    # ------------------获取浏览器信息----------------
    # 获取网址
    browser.current_url
    # 获取网页标题
    browser.title
    # 获取网页中的源码
    browser.page_source
    # 获取所有的窗口,所有的标签页(list类型)
    browser.window_handles
    # 获取现在正处于的标签页, 返回的是窗口句柄(窗口ID)
    browser.current_window_handle
    
    
    # ------------------浏览器动作--------------------
    # 最大化窗口
    browser.maximize_window()
    # 最小化窗口
    browser.minimize_window()
    # 设置窗口的大小,参数为:长宽,单位:像素
    browser.set_window_size(800, 600)
    # 刷新
    browser.refresh()
    # 后退
    browser.back()
    # 前进
    browser.forward()
    

    5、关闭标签页和浏览器

    # 关闭标签页
    browser.close()
    # 关闭浏览器
    browser.quit()
    

    (二)元素定位(百度为例)

    • 在python中模拟点点点,实际上就是通过在 HTML 当中去找到需要操作的元素(标签)进行模拟操作
    • find_element_by_...:返回的是一个WebElement对象,如果有多个值也只会返回第一个值
    • find_elements_by_...:返回的是一个WebElement对象list列表,不管有多少个值都返回的列表(可以通过索引获取你需要的哪一个)
    • send_keys("内容"):输入内容
    • click():单击
    • 在python中通过元素的特征进行查找元素,根据id属性查找(id具有唯一性)

    注意点:

    • id属性可能会是动态变化的。
    • 如果id中包含数字,那么这个id属性你要小心了,很大可能是动态变化的。
    • 像那种拼音单词之类的,一般情况下是不可变的id。

    * ***以下用的都是:find_element_by_... ***

    1、根据ID属性进行定位,查询到的是一个WebElement对象

    input_element = browser.find_element_by_id("kw")
    print(input_element)
    # 输入内容
    input_element.send_keys("Python")
    

    2、根据name属性进行定位

    element = browser.find_element_by_name("wd")
    print(element)
    

    3、根据class属性进行定位

    e = browser.find_element_by_class_name("s_ipt")
    print(e)
    

    4、通过tagname(标签名称)进行定位。查找到的元素不具备唯一性

    e = browser.find_element_by_tag_name("a")
    print(e)
    

    5、定位a标签超链接

    e = browser.find_element_by_link_text('新闻')
    # 点击链接
    e.click()
    

    6、定位a标签超链接,模糊定位

    e = browser.find_element_by_partial_link_text('新')
    e.click()
    

    7、xpath

    8、css 选择器

    【完】


  • 相关阅读:
    iOS 检测版本更新(02)
    iOS开发之检查更新
    Core Location :⽤用于地理定位
    TCP与UDP区别
    iOS设计模式之观察者模式
    联系人案例
    ksoap调用webservice
    Android获取内置sdcard跟外置sdcard路径
    百度sdk定位不成功,关闭定位
    PinnedHeaderListView实现删除
  • 原文地址:https://www.cnblogs.com/desireyang/p/12124899.html
Copyright © 2011-2022 走看看