這是一個非常簡單的問題,但令人驚訝的是,我在網上找不到答案。我正試圖找到一個網頁中的所有元素。 我知道在Selenium中尋找元素時,你可以說:
driver.find_elements_by_tag_name()
driver.find_elements_by_class_name()
driver.find_elements_by_css_selector()
driver.find_elements_by_name()
driver.find_elements_by_id()
諸如此類。但是我怎樣才能找到所有的元素呢?
uj5u.com熱心網友回復:
一般來說,這個xpath //*應該代表一個靜態網站的所有節點
另外,在典型的Selenium中,元素必須在視圖埠中,然后只有Selenium可以與之互動。
all_nodes = driver.find_elements(By.XPATH, "//*"/span>)
all_nodes在Python中是一個串列,所以你可以用串列做很多事情,如迭代或獲得大小。
注意,這應該不包括iframe,或者frame或frameset。
uj5u.com熱心網友回復:
但我如何才能找到所有的元素?
CSS選擇器支持*通配符,所以你可以用它來要求所有的元素
driver.find_elements_by_css_selector("*"/span>)
如果你想了解更多關于CSS選擇器中的*,請看星號(*)在CSS選擇器中起什么作用?的答案。
uj5u.com熱心網友回復:
嘗試xpath
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install() )
driver.get('http://google.com')
ele = driver.find_elements_by_xpath('//*[@id]'/span>)
for x in ele:
print(x.tag_name, x.get_attribute('id'/span>)
給出
div gb
div gbwa
dialog spch-lg
div spch
按鈕 spchx
div spchc
span spchl
span spchb
span spchi
span spchf
li ynRric
li YMXe
div duf3-46
a sbfblt
div tophf
div gws-output-pages-elements-homepage_additional_languages__als
div SIvCob
按鈕Mses6b
ul dEjpnf
div YUIDDb
div lb
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/309740.html
標籤:
