• Web自动化——python


    1.八大元素定位

     元素属性定位:id、name、class_name
     元素标签定位:tag_name
     超链接定位:link_text、paratial_link_text
     元素路径定位:XPath
     css选择器定位:CSS
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.如果一次性定位一组元素,用find_elements,使用find_element会报错

    2.元素基本操作

    1.点击:click()
    2.输入内容:send_keys()
    3.清除:clear()
    
    • 1
    • 2
    • 3

    3.浏览器常用操作

    1.浏览器最大化:maximize_window()
    2.设置浏览器窗口大小:set_window_size(weigth,height)
    3.设置浏览器窗口位置:set_window_position(x,y)
    4.浏览器后退:back()
    5.浏览器前进:forword()
    6.浏览器刷新:refresh()
    7.关闭当前窗口:close()   关闭的一般是主窗口
    8.关闭驱动对象:quit()
    9.获取页面title:title  获取的一般是主页面
    10.获取当前页面的url:current_url   获取的一般是主页面
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    不切换窗口时,7 9 10都是操作的主窗口

    4.获取元素信息的常用方法

    1.获取元素大小:size
    2.获取元素文本:text
    3.获取属性值:get_attribute("xxx")   传递的参数是元素的属性名   判断一组元素是否是我们想要的值
    
    • 1
    • 2
    • 3

    在特殊应用场景中使用:

    4.判断元素是否可见:is_displayed()  例如:element.is_display()
    5.判断元素是否可用:is_enabled()   是否可以点击
    6.判断元素是否被选中:is_selected()    用来检查复选框或者单选框的按钮是否被选中
    
    • 1
    • 2
    • 3

    5.鼠标和键盘相关操作

    selenium中将鼠标相关的操作封装在ActionChains,这些操作必须结合perform()执行
    action = ActionChains(driver)

    1.点击:click()
    2.右击:context_click(element)
    3.双击:double_click(element)
    4.悬停:move_to_element(element)
    5.拖拽:drag_and_drop(source,target)
    6.执行:perform()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    键盘相关操作:
    selenium将键盘相关的操作都封装在Keys类中

    1.删除键:send_keys(Keys.BACK_SPACE)   BackSpace
    2.空格键:send_keys(Keys.SPACE)
    3.制表键:send_keys(Keys.TAB)
    4.回退键(ESC):send_keys(Keys.ESCAPE)
    5.回车键:send_keys(Keys.ENTER)
    6.全选:send_keys(Keys.CONTROL,'a')
    7.复制:send_keys(Keys.CONTROL,'c')
    8.上传文件:send_keys(上传文件的路径)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    6.元素等待

    1.为什么要设置元素等待?
    由于电脑配置原因或者网络配速问题,在查找元素时未被第一时间加载出来,会抛出未找到该元素的异常


    2.什么是元素等待?
    元素在第一次未被找到时,元素等待设置的时长被激活,如果在设置的有效时长内找到元素就会继续执行代码,否则抛出未找到元素异常

    1.隐式等待

    隐式等待方法:

    driver.implicitly_wait(timeout)
    
    • 1

    1.隐式等待是全局设置,设置一次应用于全局
    2.一般情况下是前置必写代码

    2.显示等待

    selenium把显示等待的相关操作封装在WebDriverWait类中

    WebDriverWait(driver,timeout,poll_frequency)
    1.driver:浏览器驱动对象
    2.timeout:超时的时长
    3.poll_frequency:检测间隔的时间,默认是0.5s
    element = WebDriverWait(driver,10,1).until(lambda x:x.find_element(By.ID,"ID"))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7.下拉选择框

    标签: