selenium獲取元素信息的方法


獲取元素

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 handles = driver.getWindowHandles();
獲取句柄有多中方式,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());
    }
 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM