Python selenium各个组件的操作

(一)操作文本输入框

常用方法 说明
sendkeys() 设值
clear() 清空文本框内容
get_attribute() 获取文本框中的值
is_display() 判断元素是否显示

案例演示:

from time import sleep
from selenium import webdriver
driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

# 1.文本框设值
driver.find_element_by_class_name("search-input").send_keys("selenium")
sleep(3)

# 2.获取文本框中的值
str = driver.find_element_by_class_name("search-input").get_attribute("value")
print("=========="+str)

# 3.清空文本框中的值
sleep(3)
driver.find_element_by_class_name("search-input").clear()

(二)操作CheckBox

常用方法 说明
click() 点击checkbox
isEnable() 判断元素是否可以点击
isSelect() 判断元素是否选中
is_display() 判断元素是否显示

案例演示

from time import sleep
from selenium import webdriver
driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

driver.find_element_by_link_text("登录").click()
sleep(3)
element = driver.find_element_by_id("auto-signin")

# 1.判断元素是否显示
if element.is_displayed():
    print("元素已显示在页面")
print("元素未显示")

# 2.判断元素可点击
if element.is_enabled():
    print("元素可点击")
print("元素不可点击")

# 3.判断元素是否选中
if element.is_selected():
    print("元素已选中")
    sleep(3)
    print("取消已选中元素")
    element.click()

(三)操作redio、select

常用方法 说明
click() 点击redio
isEnable() 判断元素是否可以点击
isSelect() 判断元素是否选中
is_display() 判断元素是否显示
 select_by_value() value是select元素的value
 select_by_index() select列表中元素的索引
 select_by_visible_text() select列表下拉框的值

案例演示

from time import sleep
from selenium import webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

driver.find_element_by_link_text("登录").click()
sleep(3)

# 1.登录操作
driver.find_element_by_class_name("xa-emailOrPhone").send_keys(xxx)
driver.find_element_by_name("password").send_keys("xxx")
driver.find_element_by_css_selector('input[value="登录"]').click()
sleep(6)

driver.get("https://www.imooc.com/user/setprofile")
sleep(3)
driver.find_element_by_link_text("编辑").click()
sleep(3)
# 4.下拉框操作
formElememt = driver.find_element_by_id("profile")
elememt1 = formElememt.find_element_by_id("job")
Select(elememt1).select_by_value("18")

elememt2 = formElememt.find_element_by_id("province-select")
Select(elememt2).select_by_visible_text("湖南")


# 5.redio的使用
elememt3 = driver.find_element_by_xpath("(//input[@type='radio'])[5]")
if not elememt3.is_selected():
    elememt3.click()

#6.文本框
driver.find_element_by_xpath("(//textarea[@name='aboutme'])[2]").send_keys("123123123")


(四)操作button按钮

自动化用例编写有时候我们需要判断按钮是否可以点击,需要掌握按钮相关操作

方法 说明
click() 点击按钮
isEnable() 判断按钮是否可以点击

(五)frame/iframe多表单切换

方法 说明
switch_to_frame(element) 切换到iframe窗体
switch_to_default_content(element) 切换到最外层窗体

from time import sleep
from selenium import webdriver
driver = webdriver.Firefox(executable_path="F:\GeckoDriver\geckodriver")
driver.get("https://www.imooc.com/")
driver.implicitly_wait(10)

driver.find_element_by_link_text("登录").click()
sleep(3)

# 1.登录操作
driver.find_element_by_class_name("xa-emailOrPhone").send_keys(xxx)
driver.find_element_by_name("password").send_keys("xxx")
driver.find_element_by_css_selector('input[value="登录"]').click()
sleep(6)

driver.get("https://www.imooc.com/article/publish#")
sleep(3)

# 1.定位到iframe元素
element = driver.find_element_by_id("ueditor_0")
driver.switch_to_frame(element)
driver.switch_to_default_content()
driver.find_element_by_tag_name("body").send_keys("hello world")

(六)文件上传操作

(七)table操作

1.通过selenium定位方式(id、name、xpath等方式)定位table标签
#html源码<table border="5" id="table1" width="80%">#selenium操作代码table1=driver.find_element_by_id('table1')

2.获取总行数(也就是获取tr标签的个数)
#html源码<tr><th>姓名</th><th>性别</th></tr>#selenium操作源码
table_rows = table1.find_elements_by_tag_name('tr')

3.获取总列数(也就是tr标签下面的th标签个数)
#html源码<tr><th>姓名</th><th>性别</th></tr>#selenium操作源码:第一个tr标签下有多少个th
table_rows = table_rows[0].find_elements_by_tag_name('th')

4.获取单个cell值
#selenium操作源码:第一行第二列的text值row1_col2 = table_rows[1].find_elements_by_tag_name('td')[1].text

5.取值比对~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章