• Selenium使用方法整理


    selenium 使用方法

    第一点 调用浏览器

    from selenium import webdriver
    driver = webdriver.Chrome()
    

    第二点 API

    第三点 8种元素定位方法

    面试题:如果元素定位不到,是有哪些原因?

    1.元素没有加载完成
    2.Frame中
    3.元素不可以用,不可见,不可读
    4.动态属性div层

    元素名称 API
    id find_element_by_id()
    name find_element_by_name()
    class_name find_element_by_class_name()
    tag_name find_element_by_tag_name()
    link text find_element_by_link_text()
    partial link text find_element_by_partial_link_text()
    xpath find_element_by_xpath()
    css selector find_element_by_css_selector()

    第四点 Xpath定位

    绝对路径

    /html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[2]/input

    相对路径+索引定位

    //form/span[2]/input

    相对路径+属性定位

    //input[@id='su']

    相对路径+通配符定位 *

    //[@='su']

    相对路径+部分属性值定位

    //[starts-with(@id, 'su')]
    //
    [substring(@id, 2)='su'] #结尾
    //*[contain(@id,'su')] #包含

    相对路径加文本定位

    //input[text()='百度一下']

    第五点 元素操作方式

    第6点 鼠标事件

    第7点 键盘事件

    第8点 多窗口

    driver.window_handles
    driver.current_window_handle
    driver.switch_window(driver.window_handles[0])
    

    第九点 下拉框处理

    执行下拉框操作前,需要实例化Select
    sel = Select(driver.find_element_by_xpath('//input[@id='su']))
    

    第十点 浏览器弹框处理

    alert、confirm、prompt

    元素名称 简述
    switch_to_alert() 跳转到弹框
    accept() 接受
    dismiss 取消
    send_keys() 输入文字(前提有输入框才能使用)
    text() 获取弹框上面的文字

    第十一点 等待

    强制等待 Sleep(10)

    隐式等待 implicitly_wait(10)

    显示等待 WebDriverWait(10)

    WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)

    https://blog.csdn.net/huilan_same/article/details/52544521

    第十二点 文件上传

    send_keys('绝对路径')

    第十三点 flash上传&文件下载

    flash上传

    借助其他工具PC自动化类\autoIT\Python pywin32\SendKeys\keybd_event

    文件下载

    需要配置Profile文件内容

    Firefox
    from selenium import webdriver
    from time import sleep
    
    profile = webdriver.FirefoxProfile()
    profile.set_preference('browser.download.dir', 'd:\\')
    profile.set_preference('browser.download.folderList', 2)   #0为下载到桌面
    profile.set_preference('browser.download.manager.showWhenStarting', False)  #不显示进度条
    profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')
    
    driver = webdriver.Firefox(firefox_profile=profile)
    
    driver.get('http://sahitest.com/demo/saveAs.htm')
    driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
    sleep(3)
    driver.quit()
    

    Chrome

    from selenium import webdriver 
    
    from time import sleep
    options = webdriver.ChromeOptions() 
    prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}
    options.add_experimental_option('prefs', prefs) 
    driver = webdriver.Chrome(executable_path='D:\\chromedriver.exe', chrome_options=options) 
    driver.get('http://sahitest.com/demo/saveAs.htm') 
    driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click() 
    sleep(3) 
    driver.quit()
    

    第十四点 滚动条

    js = 'document.getElementsByClassName('scroll')[0].scrollTop=0'
    driver.execute_script(js)
    
    document.getElementsByClassName("scroll")[0].scrollHeight # 获取滚动条高度
    document.getElementsByClassName("scroll")[0].scrollWidth # 获取横向滚动条宽度
    document.getElementsByClassName("scroll")[0].scrollLeft=xxx # 控制横向滚动条位置
    
    

    第十五点 邮件SMTP

    https://www.cnblogs.com/cirr-zhou/p/8920622.html
  • 相关阅读:
    前端必备书籍
    搜索引擎的使用技巧
    PS切图
    css背景透明
    前端
    连接查询,A连B,B筛选出多条记录时,选用第一条记录
    mssql 过滤重复记录,取第一笔记录
    MongoDB 日常操作
    OEE计算
    Aspose.Cells: excel 转 pdf
  • 原文地址:https://www.cnblogs.com/blackpink/p/15840733.html
Copyright © 2020-2023  润新知