獲取元素
1.獲取當前頁面的Url函數
方法:current_url
實例:
driver.current_url
2.獲取元素坐標
方法:location
解釋:首先查找到你要獲取元素的,然后調用location方法
實例:
driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location
3.表單的提交
方法:submit
解釋:查找到表單(from)直接調用submit即可
實例:
driver.find_element_by_id("form1").submit()
4.獲取CSS的屬性值
方法:value_of_css_property(css_name)
實例:
driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")
5.獲取元素的屬性值
方法:get_attribute(element_name)
實例:
driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")
6.判斷元素是否被選中
方法:is_selected()
實例:
driver.find_element_by_id("form1").is_selected()
7.返回元素的大小
方法:size
實例:
driver.find_element_by_id("iptPassword").size
返回值:{'width': 250, 'height': 30}
8.判斷元素是否顯示
方法:is_displayed()
實例:
driver.find_element_by_id("iptPassword").is_displayed()
9.判斷元素是否被使用
方法:is_enabled()
實例:
driver.find_element_by_id("iptPassword").is_enabled()
10.獲取元素的文本值
方法:text
實例:driver.find_element_by_id("iptUsername").text
11.元素賦值
方法:send_keys(*values)
實例:
driver.find_element_by_id("iptUsername").send_keys('admin')
注意如果是函數需要增加轉義符u,eg.
driver.find_element_by_id("iptUsername").send_keys(u'青春')
12.返回元素的tagName
方法:tag_name
實例:
driver.find_element_by_id("iptUsername").tag_name
13.刪除瀏覽器所以的cookies
方法:delete_all_cookies()
實例:
driver.delete_all_cookies()
14.刪除指定的cookie
方法:delete_cookie(name)
實例:deriver.delete_cookie("my_cookie_name")
15.關閉瀏覽器
方法:close()
實例:driver.close()
16.關閉瀏覽器並且推出驅動程序
方法:quit()
實例:driver.quit()
17.返回上一頁
方法:back()
實例:driver.back()
18.設置等待超時
方法:implicitly_wait(wait_time)
實例:driver.implicitly_wait(30)
19.瀏覽器窗口最大化
方法:maximize_window()
實例:driver.maximize_window()
20.查看瀏覽器的名字
方法:name
實例:drvier.name
處理彈窗
1.alert窗口處理
import time
from selenium import webdriver
"""
處理alert彈窗
"""
driver = webdriver.Chrome('F:\PyCharmProject\TestFramework\drivers\chromedriver.exe')
driver.get('file:///C:/Users/Uker/Desktop/seleniumHTML/alert.html')
time.sleep(1)
# 獲取alert對話框的按鈕,點擊按鈕,彈出alert對話框
driver.find_element_by_id('alert').click()
time.sleep(1)
# 獲取alert對話框
dig_alert = driver.switch_to.alert
time.sleep(1)
# 打印警告對話框內容
print(dig_alert.text)
# alert對話框屬於警告對話框,我們這里只能接受彈窗
dig_alert.accept()
time.sleep(1)
driver.quit()
2.confirm窗口處理
import time
from selenium import webdriver
"""
處理confirm對話框
"""
# 獲取confirm對話框的按鈕,點擊按鈕,彈出confirm對話框
driver.find_element_by_id('confirm').click()
time.sleep(1)
# 獲取confirm對話框
dig_confirm = driver.switch_to.alert
time.sleep(1)
# 打印對話框的內容
print(dig_confirm.text)
# 點擊“確認”按鈕
dig_confirm.accept()
# 點擊“取消”按鈕
# dig_confirm.dismiss()
time.sleep(1)
driver.quit()
3.prompt窗口處理
import time
from selenium import webdriver
"""
處理prompt對話框
"""
# 獲取prompt對話框的按鈕,點擊按鈕,彈出prompt對話框
driver.find_element_by_id('prompt').click()
time.sleep(1)
# 獲取prompt對話框
dig_prompt = driver.switch_to.alert
time.sleep(1)
# 打印對話框內容
print(dig_prompt.text)
# 在彈框內輸入信息
dig_prompt.send_keys("Loading")
# 點擊“確認”按鈕,提交輸入的內容
dig_prompt.accept()
time.sleep(1)
driver.quit()
鼠標
1.鼠標懸停
#處理鼠標懸停
#識別需要懸停的元素
ele = driver.find_element_by_xpath(r'/html/body/div[1]/section/header/div/div[2]/ul/li[14]/div')
#鼠標移到懸停元素上
ActionChains(driver).move_to_element(ele).perform()
常用方法
driver.getTitle();//獲取標題
driver.getCurrentUrl();//獲取當前頁面url
driver.getPageSource();//獲取頁面資源
driver.switchTo().window(currentwindow);//跳轉到currentwindow句柄頁面
driver.manage().window().maximize();//最大化
driver.manage().addCookie(Cookie cookie);//添加刪除cookie
driver.switchTo().alert();切換到alert窗口
1.獲取頁面
String currentwindow = driver.getWindowHandle();//獲取當前頁面句柄
那么如果打開了多個窗口,就需要用如下函數獲取所有句柄
Set
獲取句柄有多中方式,set集合迭代器Iterator、for循環 我將用兩種方式分別實現
Interator <string> it = handles.iterator();
while(it.hasNext()){
handle = it.next();
if (currentwindow.equals(handle)){
//此處根據自己的條件靈活的判斷。
continue;
}
WebDriver window = driver.switchTo().window(handle);//切換 注意,這里要根據你判斷的條件來確定你切換的位置。請看for循環
}
for (String handle : handles){
WebDriver window = driver.switchTo().window(handle);
if (window.getTitle().equals("百度一下,你就知道")) {
System.out.println("title,url = " + window.getTitle() + ","+ window.getCurrentUrl());
}
}