Web的8種(6+2)元素+定位方法 - id : id屬性 - name : name屬性 - class_name : - tag_name :標簽名 - css定位表達式: 局部html代碼 <input type="text" class="s_ipt" name="wd" id="kw" ...
Web的8種(6+2)元素+定位方法
- id : id屬性
- name : name屬性
- class_name :
- tag_name :標簽名
- css定位表達式:
局部html代碼
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
應用於a標簽的兩種元素
-
link_text:對於a標簽的顯示文字進行定位
-
partial_link_text:(一搬對於a標簽的顯示文字進行部分定位)
<a href="http://www.baidu.com" id="fwA" target="_blank">**訪問 百度 網站**</a>
定位
link_text
driver.find_element_by_link_text("訪問 百度 網站")
partial_link_text
driver.find_element_by_partial_link_text("訪問")
獲取元素的方式-xpath
獲取元素-By
1.導包/模塊 from selenium.webdriver.common.by import By
def find_element(self, by=By.ID, value=None):
def find_elements(self, by=By.XPATH, value=None):
如果有多個相同的文本:
find_element()和find_elements()的區別
- find_element()的返回結果是一個WebElement對象,如果符合條件的有多個,預設返回找到的第一個,如果沒有找到則拋NoSuchElementException異常。
- find_elements()的返回結果是一個包含所有符合條件的WebElement對象的列表,如果未找到,則返回一個空列表。
selenium是一款十分強大的Web應用自動化框架,我們可以通過它來自動操控瀏覽器。操控瀏覽器的實質是操控瀏覽器的界面元素,因此定位元素是使用selenium的關鍵,selenium中通過find_element方法來完成定位。
在4.1.x版本後如圖的方法被棄用用;
一般會提示報錯:
AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xx
解決方法:
** 1. 降級到4.0以前的版本(4.1.1可以用,但是已經劃線了這些方法)**
** 2.使用By模塊的方式**