美文网首页
selenium常用api

selenium常用api

作者: 清风昙 | 来源:发表于2022-04-24 22:47 被阅读0次

    浏览器

    1. maximize_window() #将浏览器最大化显示
    2. set_window_size(480, 800) #设置浏览器大小
    3. back()和 forward()方法 #前进后退
    4. driver.refresh() #页面刷新

    定位/操作对象
    webdriver 提供了一系列的元素定位方法,常用的有以下几种:

    • id
    • name
    • class name
    • tag name
    • link text
    • partial link text
    • xpath
    • css selector

    获取单个的:find_element_by_xxx()
    获取所有的:find_elements_by_xxx()获取所有的
    传数据:send_keys()
    点击:click()
    清除数据:clear()
    提交:submit()

    其他常用WebElement方法
    获取该对象的尺寸大小:driver.find_element_by_id("kw").size()

    获取该对象的文本:driver.find_element_by_id("cp").text

    获取该对象的属性:driver.find_element_by_id('su').get_attribute('type')

    该对象是否可见(布尔):driver.find_element_by_id("kw").is_displayed()

    键盘事件
    from selenium.webdriver.common.keys import Keys

    1. send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
    2. send_keys(Keys.SPACE) 空格键(Space)
    3. send_keys(Keys.TAB) 制表键(Tab)
    4. send_keys(Keys.ESCAPE) 回退键(Esc)
    5. send_keys(Keys.ENTER) 回车键(Enter)
    6. send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
    7. send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
    8. send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
    9. send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)

    层级定位
    driver.find_element_by_id('xx').find_element_by_link_text('xx').click()
    这里用到了二次定位,通过对 Link1 的单击之后,出现下拉菜单,
    先定位到下拉菜单,再定位下拉菜
    单中的选项。当然,如果菜单选项需要单击,可通过二次定位后也直接跟 click()操作。

    frame定位
    switch_to_frame方法

    跳转句柄

    1. current_window_handle获得当前窗口句柄
    2. window_handles返回的所有窗口的句柄到当前会话
    3. switch_to_window()
    4. close() 与quit的区别是关闭标签页,而不是退出程序

    select(option)
    对这种类型的下拉框一般的处理是两次点击,第一点击弹出下拉框,
    第二次点击操作元素。当然,也有些下拉框是鼠标移上去直接弹出的,
    那可以使用 move_to_element()进行操作

    文件上传
    直接定位file标签sendkeys绝对路径或者相对路径

    调用js
    execute_script

    控制浏览器滚动条
    利用js操作滚动条实现,但是selenium3中支持自动搜索页面,不需要再操作滚动条来检索标签元素,了解即可
    js="var q=document.documentElement.scrollTop=10000"
    driver.execute_script(js)
    time.sleep(2)

    cookie操作

    1. get_cookies() 获得所有 cookie 信息
    2. get_cookie(name) 返回特定 name 有 cookie 信息
    3. add_cookie(cookie_dict) 添加 cookie,必须有 name 和 value 值
    4. delete_cookie(name) 删除特定(部分)的 cookie 信息
    5. delete_all_cookies() 删除所有 cookie 信息

    获取对象的属性

    #选择页面上所有的 tag name 为 input 的元素
    inputs = driver.find_elements_by_tag_name('input')
    #然后循环遍历出 data-node 为594434493的元素,单击勾选
    for input in inputs:
    if input.get_attribute('data-node') == '594434493':
    input.click()
    

    相关文章

      网友评论

          本文标题:selenium常用api

          本文链接:https://www.haomeiwen.com/subject/blwqyrtx.html