![](/img/trans.png)
[英]Python selenium webdriver find_element_by_class_name not working
[英]What are properties of find_element_by_class_name in selenium python?
browser = webdriver.Firefox()
browser.get(url)
divs = browser.find_elements_by_class_name('class')
browser.find_element_by_class_name('class') 是否有任何屬性?
例如,如果我有這樣的代碼:
<div class="foo">
<a href="" class="poo">one</a>
<a href="" class="poo">two</a>
<a href="" class="poo">three</a>
</div>
<div class="foo">
<a href="" class="koo">one</a>
<a href="" class="koo">two</a>
<a href="" class="koo">three</a>
</div>
我想從“a”標簽中獲取文本。 但首先我想獲得 div。 所以我做這樣的事情:
divs = browser.find_elements_by_class_name('foo')
現在我想從我的 divs 數組中獲取所有的 'a' 標簽。 可能嗎?
CLASS_NAME
CLASS_NAME
是Selenium支持的定位器策略之一,也是WebElement接口的一個屬性,它獲取和設置指定元素的class
屬性的值。
要從帶有父<div>
標記的<a>
標記中獲取文本,您可以使用以下任一定位器策略:
使用CLASS_NAME
:
print([my_elem.text for my_elem in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "koo")))])
使用CSS_SELECTOR
:
print([my_elem.text for my_elem in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.foo a.koo")))])
使用XPATH
:
print([my_elem.text for my_elem in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='foo']//a[@class='koo']")))])
您可以在元素中找到元素,並使用嵌套循環提取它們:
divs = browser.find_elements_by_class_name('foo')
for div in divs:
elements = div.find_elements_by_tag_name('a')
for element in elements:
print(element.text)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.