搜索框
以百度搜索框为例,我们来看一下搜索框的元素属性。标签类型是<input>
●输入文字:ele.send_keys('storm')。
●清除文字:ele.clear()。
●获取搜索框中的内容:ele.get_property('value'),控件中的值传给了value属性。
●获取元素的属性:ele.get_attribute('name')。
●获取元素的tag name:ele.tag_name。
from selenium import webdriver
from time import sleep
'''
搜索框常见操作
'''
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
#定位百度搜索框
ele = driver.find_element_by_id('kw')
ele.send_keys('storm') # 通过send_keys方法输入内容
sleep(2)
ele.clear() # 通过clear方法清除搜索框中的内容
sleep(2)
ele.send_keys('storm') # 通过send_keys方法再次输入内容
print(ele.get_property('value')) # 获取搜索框中的内容:get_property('value')
print(ele.get_attribute('name')) # 获取元素的属性:get_attribute()
print(ele.tag_name) # 获取元素的tag name:tag_name
sleep(3)
driver.quit()
●clear方法在处理有提示信息(placeholder这个属性)的搜索框的时候很有用,一般需要先使用clear,再使用send_keys
按钮
◆元素属性
我们来看一下按钮的元素属性,常见按钮有3种类型:button按钮、submit按钮、radio按钮。
button按钮
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/clicks.htm")
driver.find_element_by_xpath("/html/body/form/input[3]").click()
sleep(2)
text = driver.find_element_by_name("t2").get_attribute('value')
if text == '[CLICK]':
print('pass')
driver.quit()
submit按钮
from time import sleep
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.find_element_by_id('kw').send_keys('storm')
driver.find_element_by_id('su').submit() # 对于submit按钮,可以使用submit方法
sleep(2)
driver.quit()
radio按钮
●单击:click方法。●判断是否选中:is_selected方法。
这三种按钮都是input标签,不一样的只是type。
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/clicks.htm")
ele = driver.find_element_by_xpath('/html/body/form/input[7]')#注意这种xpath写法很不好
ele.click()
sleep(2)
if ele.is_selected():
print('pass')
sleep(3)
driver.quit()
button按钮不支持submit方法。
复选框
◆元素属性<input>标签,type="checkbox"
●模拟单击选中复选框:ele.click()。
●模拟按空格键选中复选框:ele.send_keys(Keys.SPACE)。
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/clicks.htm")
ele = driver.find_element_by_xpath('/html/body/ul//input')
ele.click()
sleep(2)
if ele.is_selected():
print('pass')
sleep(2)
ele.send_keys(Keys.SPACE) #自己可以手动实践一下,按空格键可以选中或取消选中复选框
sleep(2)
driver.quit()
假如我们想将一组复选框全都选中,该如何操作呢?
示例:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CheckBox</title>
</head>
<body>
下面是一组复选框:
<br>
<input type="checkbox" name="a">
<br>
<input type="checkbox" name="a">
<br>
<input type="checkbox" name="a">
</body>
</html>
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get('C:\\Users\\Desktop\\my_html.html')
eles = driver.find_elements_by_name('a') # 通过name定位一组元素
for ele in eles: # 循环读取每个复选框
ele.click() # 单击
sleep(2)
driver.quit()
这组复选框都有一个相同的name属性值,因此,可以通过name来定位一组元素,并将其存成一个列表,然后循环读取并操作列表即可。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理