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.取值比對~

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