1. 程式人生 > 其它 >|NO.Z.00249|——————————|CloudNative|——|KuberNetes&儲存進階.V15|-------------------------------------------------------|Ceph.v09|ceph測試|塊儲存擴容|

|NO.Z.00249|——————————|CloudNative|——|KuberNetes&儲存進階.V15|-------------------------------------------------------|Ceph.v09|ceph測試|塊儲存擴容|

1、下拉選擇框:Select類

主要就是用來操作下拉選擇框。下拉框操作步驟:

(1)先匯入Select類

(2)定位下拉框的元素屬性

(3)對Select類進行例項化

(4)定位下拉框中的選項,也就是使用Select類進行例項化後的物件呼叫類裡面的方法。

A、索引定位:select_by_index()

B、文字定位:select_by_visible_text()

C、value定位:select_by_value()

當網際網路產品的下拉框選項不標準時,我們下拉框還是用常規的方式進行選項的定位,一般用xpath中的full xpath。

1.1下拉選擇框示例

#先匯入Select類
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time
driver=webdriver.Chrome()
driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6/index(1).html")
#定位下拉框的元素屬性
location=driver.find_element_by_id("nr")
#對Select類進行例項化
obj=Select(webelement=location)     #webelement:是Select類的元素屬性,其值指向的是要操作的下拉框的定位。
time.sleep(3)
#定位下拉框中的選項:
# #第一種:使用索引定位
# obj.select_by_index(3)
# #第二種:使用文字定位
# obj.select_by_visible_text("Java語言")
#第三種:使用value定位
obj.select_by_value("Java")
time.sleep(3)
driver.quit()

1.2下拉選擇框:拉勾網實戰

當網際網路產品的下拉框選項不標準時,我們下拉框還是用常規的方式進行選項的定位,一般用xpath中的full xpath。

#下拉框實戰:拉勾網職位搜尋,工作經驗選擇經驗3-5年
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.lagou.com/")
driver.find_element_by_id("search_input").send_keys("測試開發工程師")
time.sleep(3)
driver.find_element_by_id("search_button").click()
time.sleep(2)
driver.find_element_by_xpath("/html/body/div/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[1]/div/span").click()
time.sleep(3)
driver.find_element_by_xpath("/html/body/div/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[1]/div/div/ul[2]/li[3]/span").click()
time.sleep(3)
driver.quit()

2、彈出框:Alert類

Alert類是針對對彈出框的處理,主要包括alert警告框、Confirm確認框、Prompt訊息對話方塊、它裡面的方法為:

text:獲取alert的文字資訊P。

accept:是接受Confirm彈出框。

dismiss:是拒絕接受Confirm彈出框。

send_keys:是在Prompt訊息對話方塊裡面輸入想要輸入的內容。

2.1互動1:對彈出框進行確定取消

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time
#alert的互動
#第一種:確定取消的互動
driver=webdriver.Chrome()
driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6/%E7%A1%AE%E5%AE%9A%E6%B6%88%E6%81%AF.html")
time.sleep(3)
#用tag_name元素屬性定位
driver.find_element_by_tag_name("input").click()
time.sleep(3)
#點選確定按鈕
driver.switch_to.alert.accept()
time.sleep(2)
#頁面重新整理
driver.refresh()
time.sleep(2)
driver.find_element_by_tag_name("input").click()
time.sleep(2)
#點選拒絕按鈕
driver.switch_to.alert.dismiss()
time.sleep(3)
driver.quit()

2.2互動2:獲取警告的文字資訊

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time
#alert的互動
#第二種:獲取警告的文字資訊
driver=webdriver.Chrome()
driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6/%E8%AD%A6%E5%91%8A%E6%A1%86.html")
print(driver.switch_to.alert.text)
time.sleep(3)
driver.quit()

2.3互動3:訊息對話方塊輸入內容

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time
#alert的互動
#第三種:訊息對話方塊輸入內容
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6/%E6%B6%88%E6%81%AF%E5%AF%B9%E8%AF%9D%E6%A1%86.html")
#用tag_name元素屬性定位
driver.find_element_by_tag_name("input").click()
time.sleep(3)
#訊息對話方塊輸入資訊
driver.switch_to.alert.send_keys("本是人間二月花")
time.sleep(2)
#點選確定按鈕
driver.switch_to.alert.accept()
time.sleep(2)
#頁面重新整理
driver.refresh()
driver.find_element_by_tag_name("input").click()
time.sleep(3)
driver.switch_to.alert.send_keys("本是人間二月花")
time.sleep(2)
driver.switch_to.alert.dismiss()
time.sleep(2)
driver.quit()

3、iFrame框架:iFrame類

3.1概述

1、遇到iFrame框架,解決問題的思路是:

(1)先進入到iframe的框架;

(2)然後在定位框架裡面的元素屬性;

2、怎麼判斷是否遇到iFrame框架?

當使用了所有的元素定位的方式並且都是正確的,但是就是提示找不到。那麼就檢視原始碼是否存在iFrame的框架,iFrame框架的關鍵字是iframe。如果存在,通過三種方式可以進入到iFrame的框架:

1、通過ID

2、通過索引

3、通過name(基本不使用)

3.2iFrame框架示例

from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://file.qq.com/")
time.sleep(7)
#進入第一層iFrame框架
# # driver.switch_to.frame("login_frame1")   #根據ID定位
# driver.switch_to.frame(0)   #根據索引定位
driver.switch_to.frame("login_frame")   #根據name定位
time.sleep(3)
#進入第二層iFrame框架
# driver.switch_to.frame("ptlogin_iframe")
driver.switch_to.frame(0)
time.sleep(3)
# driver.find_element_by_link_text("賬號密碼登入").click()  #這裡由於超連結的地址不完整,使link_text是定位不到的。
driver.find_element_by_xpath("/html/body/div[1]/div[9]/a[1]").click()
time.sleep(3)
driver.find_element_by_id("u").send_keys("[email protected]")
time.sleep(3)
driver.quit()

4、滑鼠事件:ActionChains類

4.1懸浮框處理

#滑鼠事件
#懸浮框處理
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
#對webdriver進行例項化
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
time.sleep(3)
#對ActionChains進行例項化處理,driver是ActionChains的例項屬性
obj=ActionChains(driver=driver)
location=driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[4]/span")
#ActionChains進行例項化後呼叫ActionChains中的方法,to_element是move_to_element的引數,值指向的是要操作的位置。
obj.move_to_element(to_element=location).perform()
time.sleep(3)
#點選搜尋設定
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[4]/div[1]/div/a[1]/span").click()
time.sleep(3)
driver.quit()

4.2右鍵的操作

#滑鼠事件
#右鍵的操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
#對ActionChains進行例項化處理,driver是ActionChains的例項屬性
obj=ActionChains(driver=driver)
#定位需要操作的位置
location=driver.find_element_by_id("kw")
#ActionChains進行例項化後呼叫ActionChains中的方法,on_element是context_click的引數,值指向的是要操作的位置
obj.context_click(on_element=location).perform()
time.sleep(3)
driver.quit()

4.3雙擊的操作

#滑鼠事件
#雙擊的操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
time.sleep(2)
#對ActionChains進行例項化處理,driver是ActionChains的例項屬性
obj=ActionChains(driver=driver)
#元素屬性定位輸入框
driver.find_element_by_id("kw").send_keys("趙麗穎")
time.sleep(2)
#定位要進行操作的位置
location=driver.find_element_by_id("su")
#ActionChains進行例項化後呼叫ActionChains中的方法,on_element是context_click的引數,值指向的是要操作的位置
obj.double_click(on_element=location).perform()
time.sleep(3)
driver.quit()