zoukankan      html  css  js  c++  java
  • selenium webdriver 浏览器操作,编码问题,鼠标操作,键盘按键操作,显示和隐式等待

    '''
    size 返回元素的尺寸
    text 获取元素的文本,测试用例中的断言
    <a id='cp'>文本信息</a>
    t_attribute(name) 获取元素属性值
    is_displayed() 设置该元素是否用户可见
    '''

    from selenium import webdriver
    driver=webdriver.Firefox()
    driver.get("https://www.baidu.com")

    #获取输入框的尺寸
    size=driver.find_element_by_id("kw").size
    print(size)
    attribute=driver.find_element_by_id("kw").get_attribute('type')
    print (attribute)

    result = driver.find_element_by_id("kw").is_displayed()
    print (result)

    #python编码问题解决
    1、我们编写的源文件,自己写的脚本。
    在头部定义编码
    #coding=utf-8
    2、执行脚本的环境语文编码
    3、gb2312 标准的中文编码
    4、gbk 扩展,支持繁体中文
    5、cp936 windows系统里面支持中文的一种编码类型
    解决:使用python IDLE运行带中文的OK,有支持各种编码

    text=driver.find_element_by_id('cp').text
    test2=text.encode("gbk","ignore"),decode("gbk")
    print(text2)


    #鼠标操作
    e1=driver.find_element_by_link_text("设置")
    e2=driver.find_element_by_link_text("网页")
    ActionChains(driver).move_to_element(el).perform()
    ActionChains(driver).drag_and_drop(e1,e2).perform()

    context_click() 右击
    double_click() 双击
    drag_and_drop()拖动,需要两个元素,一个原点,一个目标点
    move_to_element()鼠标悬停

    #鼠标的操作
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from time import sleep
    driver=webdriver.Firefox()

    #输入框输入内容
    driver.find_element_by_id("kw").send_keys("selenium")
    sleep(2)

    #输入空格键+教程
    driver.find_element_by_id("kw").send_keys(Keys.SPACE)
    driver.find_element_by_id("kw").send_keys("教程") 如果是python2,教程前面要加U,如(U"教程")
    sleep(2)

    #ctrl+a全选输入框
    driver.find_element_by_id("kw").send_keys("Keys.CONTROL",'a')
    sleep(2)

    #ctrl+x剪切
    driver.find_element_by_id("kw").send_keys("Keys.CONTROL",'x')
    sleep(2)

    #ctrl+x粘贴
    driver.find_element_by_id("kw").send_keys("Keys.CONTROL",'v')

    #通过回车键盘来代替点击操作
    driver.find_element_by_id("kw").send_keys("Keys.ENTER")


    #获取验证信息,与自动化测试用例的时候,用来做断言验证
    title=driver.title
    print(title)
    url=driver.current_url
    print (url)

    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id("su").click()
    #重新获取
    title=driver.title
    print(title)
    url=driver.current_url
    print (url)

    #断言
    if title == "selenium_百度搜索":
    print('pass')
    else:
    print('error')

    #显示等待:针地某个元素等待
    #隐式等待,针对当页面当中的所有元素等待
    from selenium import webdriver
    from selenium.webdriver.common.by import by
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    driver=webdriver.Firefox()
    driver.get("https://www.baidu.com")

    # WebDriverWait(driver,5,0.5)检测5秒种,每隔0.5秒检测一次,EC.presence_of_element_located)((By.ID,"kw"))判断该元素是否已存在,也可以使用is_displayed()检测是否为真,如果为真,则代表存在
    element = WebDriverWait(driver,5,0.5).until(
    EC.presence_of_element_located)((By.ID,"kw"))
    )
    element.send_keys("selenium")
    driver.quit()

    #以下方法使用is_displayed()检测元素是否存在
    from selenium import webdriver
    from time import sleep,ctime
    driver=webdriver.Firefox()
    driver.get("https://www.baidu.com")
    print(ctime())

    for i in range(10):
    try:
    e1 = driver.find_element_by_id("kwaa")
    if e1.is_displayed():
    break
    except:pass
    sleep(1)
    else:
    print("time out")

    driver.close()
    print(ctime())


    #隐式等待,在开头直接定义如下driver.implicitly_wait(10)
    from selenium import webdriver
    from time import sleep,ctime
    driver=webdriver.Firefox()
    driver.implicitly_wait(10)
    driver.get("https://www.baidu.com")
    e1 = driver.find_element_by_id("kwaa")
    e1.send_keys('selenium')
    driver.quit()

  • 相关阅读:
    HDU1294 Rooted Trees Problem(整数划分 组合数学 DP)
    HDU2546 饭卡(背包)
    经典动态规划总结
    POJ1285 Combinations, Once Again(背包 排列组合)
    计数 组合数学总结
    莫队算法 2038: [2009国家集训队]小Z的袜子(hose)
    循环-24. 求给定序列前N项和之二
    循环-23. 找完数
    循环-22. 输出闰年
    循环-21. 求交错序列前N项和
  • 原文地址:https://www.cnblogs.com/bzdmz/p/10325275.html
Copyright © 2011-2022 走看看