zoukankan      html  css  js  c++  java
  • Selenium之webdriverAPI

    Selenium之webdriverAPI

     1.py文件webdriverAPI

    from selenium import webdriver

    from selenium.webdriver.common.action_chains import ActionChains   ##鼠标操作

    from selenium.webdriver.support.select import Select  ####Select模块

    driver = webdriver.Chrome()

    driver.get('http://ui.imdsx.cn/uitester/')  ###

    import time

    time.sleep(1)

    driver.execute_script('window.scrollTo(0,0);')

    time.sleep(1)

    # print(driver.window_handles)

    # el = driver.find_element_by_css_selector('[href="/new-index/"]')

    # el.click()

    # print(driver.window_handles)

    # 获取全部tag的标签名

    # handles = driver.window_handles

    # driver.switch_to_window(handles[1])

    # driver.switch_to.window(handles[1])

    #

    # driver.find_element_by_css_selector('#newtag').send_keys('xxxx')

    # 退出驱动

    # driver.quit()

    # # 关闭页面 关闭时如果指针切换了 必须手动切回来 不会默认切回来

    # driver.close()

    # driver.switch_to.window(handles[0])

    # driver.find_element_by_css_selector('#i1').send_keys('xxxx')

    多层html

    # name = top-frame

    # 如果iframe有name属性 或 id属性则  可以直接在frame种填写

    Iframe中通过src可以嵌套html

    # driver.switch_to.frame(eleObj)  # top-frame

    # # driver.switch_to.frame('top-frame')

    # import time

    # time.sleep(2)

    # 如果没有name和id属性 frame() 可以接受elementOBj

    # eleObj = driver.find_element_by_css_selector('[src="/new-index/"]')

    # # 切换到 top-frame

    # # 输入newtag文案

    # driver.find_element_by_css_selector('#newtag').send_keys('xxxx')

    # # 切换到百度frame

    # driver.switch_to.frame('baidu-frame')

    # time.sleep(2)

    # # 输入文案

    # driver.find_element_by_css_selector('#kw').send_keys('xxxx')

    # # 返回到你的上一层

    # driver.switch_to.parent_frame()

    # # 清空input的数据

    # driver.find_element_by_css_selector('#newtag').clear()

    # # 在进入百度的frame

    # driver.switch_to.frame('baidu-frame')

    # # 在清除百度的输入

    # driver.find_element_by_css_selector('#kw').clear()

    # # 返回到最外层

    # driver.switch_to.default_content()

    # driver.find_element_by_css_selector('#i1').send_keys('xxxxxx')

    # 最大化浏览器

    # driver.maximize_window()

    # driver.find_element_by_link_text('跳转大师兄博客地址').click()

    # #浏览器的后退键

    # driver.back()

    # # 浏览器的前进按钮

    # driver.forward()

    # # 浏览器的刷新按钮

    # driver.refresh()

    # 获取当前浏览器的大小

    # print(driver.get_window_size())

    # # 设置浏览器的大小

    # driver.set_window_size(100,100)

    # 截图

    # driver.get_screenshot_as_file('pngdemo.png')

     系统级别的弹出框

    # driver.find_element_by_css_selector('#alert').click()

    # # alert处理

    # print(driver.switch_to.alert.text) ##弹框文本 

    # driver.switch_to.alert.accept() #确认

    # driver.switch_to.alert.dismiss() # 取消

    悬浮显示

    # el = driver.find_element_by_css_selector('#dis1')

    # # 判断元素是否在页面上展示

    # print(el.is_displayed())

    # # 暂时让按钮显示出来

    # driver.execute_script("document.getElementById('dis1').style.display='';")

    # print(el.is_displayed())

    # driver.find_element_by_css_selector('#dis1').click()

    # 鼠标操作

    # 获取要悬浮的元素

    # el = driver.find_element_by_css_selector('#a')

    # dis1 = driver.find_element_by_css_selector('#dis1')

    # # 鼠标操作 链式变成

    # ActionChains(driver).move_to_element(el).click(dis1).perform()    ###实例化 先移动再点击 perform() 执行

     拼图 鼠标拖拽

    # source = driver.find_element_by_css_selector('#dragger')

    # target = driver.find_element_by_css_selector('#i1')

    # ActionChains(driver).drag_and_drop(source,target).perform()  ###鼠标拖拽

    也可以使用click_and_hold()

    release()

    可多次书写最后执行

    select 下拉框

    # 实例化select 接受一个select标签 如果不是select标签则抛异常

    # select = driver.find_element_by_xpath('//select[1]')

    # # 获取标签是option的元素

    # eles = select.find_elements_by_tag_name('option')

    # for opt in eles:

    #     print(opt.get_attribute('value'))  获取vlaue属性(1.2.3.4)

    # # 通过select标签的option中的value字段定位

    # Select(select).select_by_value('4')

    # # 一个标签中如果还要子集 可以在继续在这个标签的基础上进行find

    # Select(select).select_by_index(3)

    # 等待(3种)

    # 第一种就是time.sleep()  这种是最low的  测试代码可以用一下

    # 第二种隐士等待 driver.implicitly_wait(10) 基本不用(当打开url时会第一时间等待,加载成功后再执行代码,每次打开页面都会执行 应用于全局)

    # 第三种显示等待

    from selenium.webdriver.support.wait import WebDriverWait

    from selenium.webdriver.support import expected_conditions as EC

    from selenium.webdriver.common.by import By

    # WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located((By.ID,'i1')))##超时时间和步长  每隔多少秒是否扫描到该可见元素。

    ele =WebDriverWait(driver,60,5).until(EC.presence_of_element_located((By.ID,'i11')))####不一定可见

    ele.send_keys('xxxxx')

    真实可练习

    css = 'css=>#i1'

    get_element(css)

  • 相关阅读:
    Nginx 的编译安装和URL地址重写
    How to use DBVisualizer to connect to Hbase using Apache Phoenix
    Apache Phoenix on CDH 5
    Phoenix 映射 HBase + Maven
    Cloudera Manager5及CDH5在线(cloudera-manager-installer.bin)安装详细文档
    Cloudera Manager5安装总结遇到问题及解决办法 CDH 5.8 on CentOS 7
    Hive、Spark SQL、Impala比较
    OLTP与OLAP的介绍
    Using Apache Spark and MySQL for Data Analysis
    Hadoop、Hive、Spark 之间关系
  • 原文地址:https://www.cnblogs.com/cslw5566/p/9297299.html
Copyright © 2011-2022 走看看