Selenium常用方法及函数、txt参数化

时间:2023-03-08 16:37:07
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文档中进行遍历,示例如下:

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

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

函数部分

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

代码部分

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

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

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

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

遍历字典代码部分,如下

 from selenium.webdriver.common.by import By
from selenium import webdriver
import time
import k1
info=k1.zidian()
# print(info)
for username,passwd in info.items():
print(username)
print(passwd)
driver = webdriver.Chrome()
url = "https://www.baidu.com/"
driver.get(url)
driver.find_element(By.LINK_TEXT,"登录").click()
time.sleep(3)
driver.find_element(By.ID,"TANGRAM__PSP_10__userName").send_keys(username)
driver.find_element(By.ID,"TANGRAM__PSP_10__password").send_keys(passwd)
time.sleep(20)
driver.find_element(By.ID,"TANGRAM__PSP_10__submit").click()
time.sleep(5)
driver.quit()