Selenim的主要方法

2021-10-04 00:11:30 字數 2094 閱讀 7291

選擇web元素的方法

通過id選擇元素

寫法1:

element = driver.find_element_by_id(「kw」)

寫法2:

from selenium.webdriver.common.by import by

element = driver.find_element(by=by.id, value=「kw」)

tips: by=by.id表示以id的方式定位web元素,下面的例子有類似的寫法以此類推

通過name選擇元素

寫法1:

cheese = driver.find_element_by_name(「cheese」)

寫法2:

from selenium.webdriver.common.by import by

cheese = driver.find_element(by.name, 「cheese」)

通過class選擇元素

寫法1:

cheeses = driver.find_elements_by_class_name(「cheese」)

tips:注意,這裡返回的是乙個包含web元素的列表,下同

寫法2:

from selenium.webdriver.common.by import by

cheeses = driver.find_elements(by.class_name, 「cheese」)

通過tag選擇元素

寫法1:

如果iframe這個tag在本html中是唯一的,可以根據iframe這個tag名來找到該元素

frame = driver.find_element_by_tag_name(「iframe」)

寫法2:

from selenium.webdriver.common.by import by

frame = driver.find_element(by.tag_name, 「iframe」)

注意,通過title標籤名獲取title元素,列印的文字值為空:

ele2=driver.find_element_by_tag_name(『title』)

print(ele2.text)

我們先debug看獲取到的元素屬性

為什麼會造成這種結果?

首先和我們獲取元素的方式沒有任何關係

text顯示的應該是網頁中可見的內容。

title不在網頁中,所以顯示不出來。

title是乙個特殊的元素,標籤內的文字表示頁面的標題,

可以通過driver.title屬性獲取頁面標題

獲取元素資訊

拿到webelement物件,我們可以對它做一些操作,比如獲取元素內部資訊

這個時候操作主體由webdriver變成了webelement,呼叫的是webelement物件的方法

獲取元素文字

使用webelement的 text屬性

ele = driver.find_element_by_id(「food」)

print ele.text

獲取元素屬性值

get_attribute方法

下面的**就是獲取。。。。。href屬性的值

獲取到以後,就可以判斷鏈結是否與預期相同

或者 乙個元素的 style屬性,比如需要判斷顏色是否是紅色。

ele = driver.find_element_by_id(「food」)

print ele.get_attribute(『style』)

獲取元素對應的html片段

那麼怎麼獲取整個html呢?還是通過get_attribute方法,

第一種:整個web元素的html片段

只需要引數指定為outerhtml 就可以了

ele.get_attribute(『outerhtml』)

第二種:web元素內部子元素html片段

只需要引數指定為』innerhtml』就可以了

ele.get_attribute(『innerhtml』)

Request物件的主要方法

setattribute string name,object 設定名字為name的request的引數值 getattribute string name 返回由name指定的屬性值 getattributenames 返回request物件所有屬性的名字集合,結果是乙個列舉的例項 getcook...

Request物件的主要方法

setattribute string name,object 設定名字為 name 的request 的引數值 getattribute string name 返回由 name 指定的屬性值 getattributenames 返回request 物件所有屬性的名字集合,結果是乙個列舉的例項 g...

Request物件的主要方法

setattribute string name,object 設定名字為name的request的引數值 getattribute string name 返回由name指定的屬性值 getattributenames 返回request物件所有屬性的名字集合,結果是乙個列舉的例項 getcook...