zoukankan      html  css  js  c++  java
  • Selenium常用方法及函数、txt参数化

    常用方法及函数:

    1.表单的提交
    方法:submit
    解释:查找到表单(from)直接调用submit即可
    实例:driver.find_element_by_id("form1").submit()

    2.获取CSS的属性值
    方法:value_of_css_property(css_name)
    实例:driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")

    3.获取元素的属性值(一组元素中非常实用)
    方法:get_attribute(element_name)
    实例:driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")

    4.判断元素是否被选中
    方法:is_selected()
    实例:driver.find_element_by_id("form1").is_selected()

    5.返回元素的大小
    方法:size
    实例:driver.find_element_by_id("iptPassword").size
    返回值:{'width': 250, 'height': 30}

    6.判断元素是否显示(非常实用)
    方法:is_displayed()
    实例:driver.find_element_by_id("iptPassword").is_displayed()

    7.判断元素是否被使用
    方法:is_enabled()
    实例:driver.find_element_by_id("iptPassword").is_enabled()

    8.获取元素的文本值(非常实用)
    方法:text
    实例:driver.find_element_by_id("iptUsername").text

    9.元素赋值
    方法:send_keys(*values)
    实例:driver.find_element_by_id("iptUsername").send_keys('admin')

    10.删除浏览器所有的cookies
    方法:delete_all_cookies()
    实例:driver.delete_all_cookies()

    11.删除指定的cookie
    方法:delete_cookie(name)
    实例:deriver.delete_cookie("my_cookie_name")

    12.设置等待超时时间,可以在设置的时间内智能等待
    方法:implicitly_wait(wait_time)
    实例:driver.implicitly_wait(30)

    13.查看浏览器的名字
    方法:name
    实例:drvier.name

    14.打印title
    方法:title
    实例:deriver.title

    txt参数化:

    以百度为例

    一、把需要的参数写在一个txt文档中进行遍历,示例如下:

     1 #引入所需包
     2 import time,codecs
     3 from selenium.webdriver.common.by import By
     4 from selenium import webdriver
     5 
     6 #把打开的文档内容进行utf-8编码
     7 source = codecs.open("123.txt","r","utf-8")
     8 value = source.readlines()
     9 # print(list(value))
    10 
    11 #遍历txt文档中的内容
    12 for search in value:
    13     driver = webdriver.Chrome()
    14     url = "https://www.baidu.com/"
    15     driver.get(url)
    16     driver.find_element(By.ID,"kw").send_keys(search)
    17     time.sleep(3)
    18     driver.find_element(By.ID,"su").click()
    19     driver.quit()

     二、把需要的参数写在一个函数中,需要的时候进行调用,示例如下

    函数部分

    1 def fun(user="hanxiaobei",pswd="123456"):
    2     print(u"调用函数成功")
    3     return user,pswd

    代码部分

     1 from selenium.webdriver.common.by import By
     2 from selenium import webdriver
     3 import time
     4 import k1
     5 c2,c3=k1.fun()
     6 # print(k2,k3) #打印是否调用成功
     7 
     8 driver = webdriver.Chrome()
     9 url = "https://www.baidu.com/"
    10 driver.get(url)
    11 driver.find_element(By.LINK_TEXT,"登录").click()
    12 time.sleep(3)
    13 driver.find_element(By.ID,"TANGRAM__PSP_10__userName").send_keys(c2)
    14 driver.find_element(By.ID,"TANGRAM__PSP_10__password").send_keys(c3)
    15 time.sleep(20)  #由于需要输入验证码,我采用的手动输入,嘎嘎
    16 driver.find_element(By.ID,"TANGRAM__PSP_10__submit").click()
    17 time.sleep(5)
    18 driver.quit()

    三、把需要的参数写在字典中,需要的时候进行调用,示例如下

    字典写成了一个函数,如下

    1 def zidian():
    2     data = {"han":"Hanxiaobei","user":123456,"hanxiaobei1":"1234567890"}
    3     return data

    遍历字典代码部分,如下

     1 from selenium.webdriver.common.by import By
     2 from selenium import webdriver
     3 import time
     4 import k1
     5 info=k1.zidian()
     6 # print(info)
     7 for username,passwd in info.items():
     8     print(username)
     9     print(passwd)
    10     driver = webdriver.Chrome()
    11     url = "https://www.baidu.com/"
    12     driver.get(url)
    13     driver.find_element(By.LINK_TEXT,"登录").click()
    14     time.sleep(3)
    15     driver.find_element(By.ID,"TANGRAM__PSP_10__userName").send_keys(username)
    16     driver.find_element(By.ID,"TANGRAM__PSP_10__password").send_keys(passwd)
    17     time.sleep(20)
    18     driver.find_element(By.ID,"TANGRAM__PSP_10__submit").click()
    19     time.sleep(5)
    20     driver.quit()
  • 相关阅读:
    Go入门笔记-22 访问sqlite3数据库
    Go入门笔记-21 访问consul
    Docker中sh提示符无法回退
    Go入门笔记-20 访问redis
    Docker进阶学习-1
    Musl-libc库编译
    修复 Could not find class [org.springframework.cloud.client.loadbalancer.LoadBalancerProperties]
    Oracle DBLINK 简单使用
    js几种escape()解码与unescape()编码
    解决浏览器图片缓存问题(图片不能及时变过来)
  • 原文地址:https://www.cnblogs.com/ailiailan/p/8086966.html
Copyright © 2011-2022 走看看