• selenium常用操作


    1.打开页面
    #第一步导入webdriver模块
    from selenium import webdriver

    #第二步打开浏览器
    driver = webdriver.Firefox()  E:Python2.7Libsite-packagesseleniumwebdriverfirefoxwebdriver.py

    #第三步打开想要进入的页面
    driver.get('http://oms01sz.itc.cmbchina.cn/login.html')

    2.设置休眠时间
    import time
    time.sleep(2)

    3.页面刷新
    driver.refresh()  #相当于F5  E:Python2.7Libsite-packagesseleniumwebdriver emotewebdriver.py

    4.页面切换
    切到上一页面
    driver.back()

    切到下一页面
    driver.forward()  #相当于浏览器左上角的右箭头按钮

    5.设置窗口大小
    driver.set_window_size(500,600)
    driver.maximize_window() 最大化浏览器窗口

    6.截屏
    driver.get_screenshot_as_file("D:\test\b1.jpg")

    7.退出
    driver.quit()  #用于结束进程,关闭所有窗口,可以回收C盘中的临时文件
    driver.close()  #关闭当前窗口,当窗口较多时,可用来关闭部分窗口

    操作元素(键盘和鼠标事件)  E:Python2.7Libsite-packagesseleniumwebdriver emotewebelement.py
    1.点击(鼠标左键)页面按钮:click()
    2.清空输入框:clear()
    3.输入字符串:send_keys(u"哈哈")
    4.submit提交

    模拟键盘操作要先导入键盘模块
    from selenium.webdriver.common.keys import Keys
    模拟enter键:send_keys(Keys.ENTER)
    键盘F1到F12:send_keys(Keys.F1)  #其他同理
    复制:send_keys(Keys.CONTROL,'c') 粘贴,全选,剪切同理
    制表键Tab:send_keys(Keys.TAB)

    鼠标事件
    from selenium.webdriver.common.action_chains import ActionChains
    ActionChains(driver).move_to_element(元素位置).perform()  鼠标悬停
    右击鼠标:context_click()
    双击鼠标:double_click()

    多窗口,句柄
    浏览器窗口的属性用句柄(handle)来标识
    获取当前句柄
    driver.current_window_handle
    获取所有句柄
    driver.window_handles   得到一个列表
    切换句柄
    方法1:获取句柄list中的第二个句柄直接切换
    all_handles = driver.window_handles
    driver.switch_to.window(all_handles[1])

    frame 与iframe 的区别
    frame是整个页面的框架,iframe是内嵌的网页元素
    切换iframe
    driver.switch_to_frame("id值")
    释放iframe
    driver.switch_to.default_content() #释放iframe,重新回到主页面

    select下拉框
    方法一:分两步,先定位到select框,再定位到选项
    driver.find_element_by_id("框的id值").find_element_by_xpath("//*[@value="1"]").click()
    方法二:直接定位
    driver.find_element_by_xpath("//*[@id='nr']/option[2]]").click()
    方法三:使用Select模块
    from selenium.webdriver.support.select import Select
    Select(框的id值).select_by_index(2) 根据索引
    Select(框的id值).select_by_value("15") 根据value值
    Select(框的id值).select_by_visible_text("学习") 根据text文本

    alertconfirmprompt
    alert弹出框只有确定按钮
    confirm弹出框有确定按钮和取消按钮
    prompt弹出框有确定按钮,取消按钮和输入框
    t = driver.switch_to_alert()
    t.text 获取弹框内容
    t.accept() 点击确定按钮
    t.dismiss() 点击取消按钮
    t.send_keys('anyway you want') 输入文本值

    单选框和复选框(radiobox、checkbox)
    单选框是圆的;复选框是方的
    先判断按钮是否被点击,
    driver.find_element_by_id('id').is_selected()  若被点击 返回True,没被点击返回False
    driver.find_element_by_id('id0').click() 单选框
    checkboxs = driver.find_elements_by_xpath('//*[@type="checkbox"]')  复选框得到是一组元素列表
    for i in checkboxs:
     i.click()

    table表格定位
    1.table页面查看源码一般有这几个明显的标签:table、tr、th、td
        2.<table>标示一个表格
        3.<tr>标示这个表格中间的一个行
        4.<th> 定义表头单元格
        5.<td> 定义单元格标签,一组<td>标签将将建立一个单元格,<td>标签必须放在<tr>标签内

    文件上传
    input标签,并且type属性的值为file,直接用send_keys()方法上传文件
    river.find_element_by_name('file').send_keys(r"D: estxuexi est14.png")
    非input标签 需要借助autoit工具或者SendKeys第三方库
     

    滑动滚动条  借助js 控制滚动条高度 方法一: driver.execute_script("document.documentElement.scrollTop=0") #滚动条回到顶部 driver.execute_script("document.documentElement.scrollTop=10000") #滚动条回到底部 可以修改scrollTop 的值,来定位右侧滚动条的位置,0是最上面,10000是最底部

    方法二:不推荐使用 谷歌和火狐都没有生效 driver.execute_script("document.body.scrollTop=0") driver.execute_script("document.body.scrollTop=10000")

    方法三: driver.execute_script("window.scrollTo(0,0)")  #滚动条回到顶部 driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")  #滚动条回到底部

    横向滚动条
    1.有时候浏览器页面需要左右滚动(一般屏幕最大化后,左右滚动的情况已经很少见了)。
    2.通过左边控制横向和纵向滚动条
    js = "window.scrollTo(100,400);"
    driver.execute_script(js)
    3.第一个参数x是横向距离,第二个参数y是纵向距离

    js处理内嵌div滚动条
    先定位元素然后通过控制 scrollTop的值来控制滚动条高度
    driver.execute_script('document.getElementById('id').scrollTop=0')
    横向滚动
    先通过id来定位,通过控制scrollLeft的值来控制滚动条高度
    driver.execute_script('document.getElementById('id').scrollLeft=0')

    滚动条拖地元素可见的位置
    先让页面直接跳到元素出现的位置,然后就可以操作了。同样需要借助JS去实现。
    元素聚焦
    target = driver.find_element_by_xxxx()
    driver.execute_script("arguments[0].scrollIntoView();", target)

  • 相关阅读:
    BZOJ1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
    BZOJ1031: [JSOI2007]字符加密Cipher
    关于后缀数组的实现
    BZOJ1692: [Usaco2007 Dec]队列变换
    BZOJ1725: [Usaco2006 Nov]Corn Fields牧场的安排
    POJ 2386 Lake Counting(搜索联通块)
    POJ 2386 Lake Counting(搜索联通块)
    Java演示设计模式中的写代码的代码
    Java演示设计模式中的写代码的代码
    源码映射
  • 原文地址:https://www.cnblogs.com/qqxin/p/11720960.html
Copyright © 2020-2023  润新知