• 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()

  • 相关阅读:
    [微信产品经理推荐] 有车一族福音,这个小程序能够帮到你很多忙,功能很逆天!
    微信小程序开闸,关于入口、推广、场景的一些观察与思考
    微信小程序体验(2):驴妈妈景区门票即买即游
    微信小程序的机会在于重新理解群组与二维码
    如何为你的微信小程序体积瘦身?
    体验报告:微信小程序在安卓机和苹果机上的区别
    微信小程序体验(1):携程酒店机票火车票
    张小龙宣布微信小程序1月9日发布,并回答了大家最关心的8个问题
    重点必看:小程序的服务范围限制有哪些?
    一些JS常用的方法
  • 原文地址:https://www.cnblogs.com/bzdmz/p/10325275.html
Copyright © 2020-2023  润新知