Selenium-WebDriver API命令與操作——八種元素定位
原文地址:http://www.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations
(本文只針對python部分翻譯)
首先申明一點:本人英語水平很爛,做此翻譯僅僅用於更深入地去理解webdriver的使用方法。
一、獲取頁面
使用WebDriver的第一步是開啟一個頁面,通常呼叫get來做這件事:
driver.get("http://www.google.com");包括作業系統/瀏覽器等諸多因素,WebDriver不會自行等待頁面載入。某些情況下,在頁面還沒有完全加載出來前,WebDriver可能已經失去控制了。為了確保穩定性,可使用“顯式等待”和“隱式等待”,等待所需要定位的元素出現在頁面再進行操作。
顯式等待:
隱式等待:
二、定位元素
在WebDriver中定位元素有兩種方式:通過建立例項或者頁面元素。每一種語言都有“Find Element”和“Find Elements”兩種方法。前者返回的是與查詢對應的元素物件,如果該元素沒有發現,則丟擲異常。後者返回一個多個頁面元素的列表,如果沒有匹配到查詢的DOM元素,該列表為空。
Find方法有一個By定位物件,下面列出By的使用方法:
1、By ID
這是定位元素最高效也是首選的方法,常見的問題是UI開發者做了不唯一或者動態變化的id,這兩種方式都應當避免,為元素設定一個類都比動態id更合適。
例子如下:
HTML:
<div id="coolestWidgetEvah"Python程式碼:>...</div>
element = driver.find_element_by_id("coolestWidgetEvah") or from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value="coolestWidgetEvah")
2、By Class Name
本案例中,類即為DOM元素的屬性,通常很多DOM元素的類名是相同的,因此如果查詢一組相同類名的元素,該方法成了更合適的選擇。
例子如下:
HTML:
<divPython程式碼:class="cheese"><span>Cheddar</span></div><div class="cheese"><span>Gouda</span></div
cheeses = driver.find_elements_by_class_name("cheese") or from selenium.webdriver.common.by import By cheeses = driver.find_elements(By.CLASS_NAME, "cheese")
3、By Tag Name
即,DOM元素的標籤名
例子如下:
HTML:
<iframe src="..."></iframe>Python程式碼:
frame = driver.find_element_by_tag_name("iframe") or from selenium.webdriver.common.by import By frame = driver.find_element(By.TAG_NAME, "iframe")4、By Name
通過匹配元素名稱屬性查詢元素
例子如下:
HTML:
<input name="cheese" type="text"/>Python程式碼:
cheese = driver.find_element_by_name("cheese") or from selenium.webdriver.common.by import By cheese = driver.find_element(By.NAME, "cheese")5、By Link Text
通過可見文字查詢超連結元素
例子如下:
HTML:
<a href="http://www.google.com/search?q=cheese">cheese</a>>Python程式碼:
cheese = driver.find_element_by_link_text("cheese") or from selenium.webdriver.common.by import By cheese = driver.find_element(By.LINK_TEXT, "cheese")6、By Partial Link Text
通過可見文字模糊查詢超連結元素
例子如下:
HTML:
<a href="http://www.google.com/search?q=cheese">search for cheese</a>>
Python程式碼:
cheese = driver.find_element_by_partial_link_text("cheese") or from selenium.webdriver.common.by import By cheese = driver.find_element(By.PARTIAL_LINK_TEXT, "cheese")7、By CSS
顧名思義,它是CSS的一種定位策略。通常本地瀏覽器都支援,請通過w3c css selectors獲取常用CSS選擇器的列表清單,如果瀏覽器不支援CSS查詢,請使用Sizzle。IE 6、7和ff3.0目前使用Sizzle作為css查詢引擎。
注意,每個瀏覽器不同,對應CSS的版本也不同。
例子如下:
HTML:
<div id="food"><span class="dairy">milk</span><span class="dairy aged">cheese</Python:
cheese = driver.find_element_by_css_selector("#food span.dairy.aged") or from selenium.webdriver.common.by import By cheese = driver.find_element(By.CSS_SELECTOR, "#food span.dairy.aged")
8、By Xpath
WebDriver可以隨時隨地使用Xpath功能,如果瀏覽器不支援Xpath,而我們又這樣做的話,將會導致意想不到的錯誤,除非你懂得不同的XPath引擎之間的差異。
有點抽象,請看例子:HTML:
<input type="text" name="example" /> <INPUT type="text" name="other" />Python程式碼:
inputs = driver.find_elements_by_xpath("//input") or from selenium.webdriver.common.by import By inputs = driver.find_elements(By.XPATH, "//input")匹配到的結果(數量)如下: 有時候,HTML元素不需要顯式顯示宣告屬性,因為它有一個預設值。例如,一個input標籤不需要一個type屬性,因為它預設為text。在WebDriver中使用xpath的經驗法則是,不要期望能夠匹配到這些隱式屬性。
說明:翻譯中的css與xpath講的很抽象,看的我糊里糊塗的,其實真實操作中並沒有這麼複雜
相關推薦
Selenium-WebDriver API命令與操作——八種元素定位
原文地址:http://www.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations (本文只針對python部分翻譯) 首先申明一點:本人英語水平很爛,做此翻
【Selenium 3+Java自動化(4)】-八種元素定位
pub nbsp 百度搜索 name tail webdriver nqa pan sss 1 package com.mypro.jase; 2 3 import org.openqa.selenium.By; 4 import org.openqa.sele
Selenium:八種元素定位方法
前言: 我們在做WEB自動化時,最根本的就是操作頁面上的元素,首先我們要能找到這些元素,然後才能操作這些元素。工具或程式碼無法像我們測試人員一樣用肉眼來分辨頁面上的元素。那麼我們怎麼來定位他們呢? 在學習元素定位之前,我們最好能懂一點html的知識。 web driver提供
Selenium+Python之八種元素定位方法
如有疑問,可以留言或私信問我喲~ 一、id定位 driver.find_element_by_id("txtUaserName").send_keys("容音@lily") 二、name定位 driver.find_element_by_name("username"
python2.7運行selenium webdriver api報錯Unable to find a matching set of capabilities
fin ssi sage strong 有關 fire IT ref update 在火狐瀏覽器33版本,python2.7運行selenium webdriver api報錯:SessionNotCreatedException: Message: Unable to f
Docker 常用命令與操作
auto 行數 文件夾 works 操作 接受 ports uil rac 介紹 此命令集合版本為 1.11.1 及以上 基礎類 查看docker信息 # 查看docker版本 docker version # 顯示docker系統的信息 docker
Selenium webdriver api 呼叫屬性方法 (文件手冊)
Selenium webdriver api 呼叫屬性方法 (文件手冊) from selenium import webdriver driver=webdriver.Firefox() driver.get(r'http://www.baidu.com/') print 'dri
selenium webdriver API詳解(一)
本系列主要講解webdriver常用的API使用方法(注意:使用前請確認環境是否安裝成功,瀏覽器驅動是否與谷歌瀏覽器版本對應) 一:開啟某個網址 from selenium import webdriver # 匯入webdriverdriver = webdriver.Chro
Selenium WebDriver API 進階使用,模組化引數化進行自動化測試設計
WebDriver API 進階使用 元素定位 我們知道,WebDriver API的呼叫以及自動化測試,務必從頁面元素的定位開始,WebDriver提供了一系列的定位符以便使用元素定位方法。常見的定位符有以下幾種: id name class name tag link te
Python+Selenium WebDriver API:瀏覽器及元素的常用函式及變數整理總結
由於網頁自動化要操作瀏覽器以及瀏覽器頁面元素,這裡筆者就將瀏覽器及頁面元素常用的函式及變數整理總結一下,以供讀者在編寫網頁自動化測試時查閱。 from selenium import webdriver driver=webdriver.Firefox()
Debian Linux常用命令與操作備忘
screen 建立一個虛擬的終端(screen),在screen中執行需要長時間執行的程式可以避免由於ssh斷開導致程式終止 $ screen -S <name> //建立一個screen $ screen -list //列出已經存在的
2 Docker常用命令與操作
1 映象操作 操作 命令 說明 檢索 docker search 關鍵字 eg:docker search redis hub.docker.com上檢索映象的詳細資訊
Selenium Webdriver之Chrome瀏覽器操作小記
Selenium Selenium 是一套跨平臺的瀏覽器自動化測試框架(工具),支援在多種系統環境、多種瀏覽器環境下使用,還可以使用多種程式語言來編寫測試。 Selenium 有多個專案構成,形成了一個多功能的測試系統: Selenium Core:支援DHTML 的
Selenium Webdriver API(2)
font 瀏覽器 find keys family input box __main__ otto Selenium Webdriver API(2) 15、獲取元素基本信息 #啟動IE瀏覽器driver = webdriver.Ie(executable_path="IE
shell程式設計基礎(3.常用概念命令與操作
5訊號處理 訊號就是系統向指令碼或命令發出的訊息,告知它們某個事件的發生。這些事件通常是記憶體錯誤,訪問許可權問題或某個使用者試圖停止你的程序。訊號實際上是一些數字。下表列出了最常用的訊號及它們的含義列出所有訊號: >kill –l HUP INT QUIT ILL
Selenium webdriver常用命令彙總
這段時間使用selenium webdriver做UI自動化,積累了一些心得,彙總了常用的命令。 1、查詢某個元素是否存在: bot.existElement(By.xpath("//a[contains(text(),'寧波測試商品002')]")) 2、根據x
Selenium Webdriver API(5)
pri paste bsp 頁面 pty keys 使用命令 self visit Selenium Webdriver API(5)31、鍵盤操作-F12#encoding=utf-8import timeimport unittestfrom selenium impo
Selenium2+python自動化6-八種元素元素定位(Firebug和firepath)
插件 end 選擇 text www. fin pat 重點 進行 前言 自動化只要掌握四步操作:獲取元素,操作元素,獲取返回結果,斷言(返回結果與期望結果是否一致),最後自動出測試報告。本篇主要講如何用firefox輔助工具進行元素定位。元素定位在這四個環節中是至關
python+selenium高亮顯示正在操作的頁面元素
nbsp quit 設置 函數 net fin 正在 ive get 原文地址:https://blog.csdn.net/wxstar8/article/details/80801405 from selenium import webdriver import u
Selenium3+python自動化6-八種元素元素定位(Firebug和firepath)
https://www.cnblogs.com/yoyoketang/p/6123834.html https://www.cnblogs.com/yoyoketang/p/6123890.html # coding:utf-8from selenium import webdriver