[英]How to access the <li> items using Selenium webdriver
我想訪問網頁中的<li>
項目。
從給定的HTML,我如何訪問列表項,如用戶,制作和模型?
我無法檢索列表的內容。 我的代碼沒有執行for循環中添加的代碼。
HTML:
<li class="nav-item"> <span class="nav-link add-items" data-toggle="collapse" data-target="#add"> <i class="fas fa-plus"></i> Add</span>
<ul class="add-menu collapse" id="add">
<li><span data-toggle="modal" data-target="#add-user-modal">User</span></li>
<li><span data-toggle="modal" data-target="#add-make-modal">Make</span></li>
<li><span data-toggle="modal" data-target="#add-model-modal">Model</span></li>
</ul>
</li>
要打印用戶 , 制作和模型等列表項,您可以使用以下解決方案:
Java :
使用cssSelector
:
List<String> myItems = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("li.nav-item ul.add-menu.collapse li>span"))).stream().map(element->element.getAttribute("innerHTML")).collect(Collectors.toList()); System.out.println(myItems);
使用xpath
:
List<String> myItems = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//li[@class='nav-item']//ul[@class='add-menu collapse']//li/span"))).stream().map(element->element.getAttribute("innerHTML")).collect(Collectors.toList()); System.out.println(myItems);
Python :
使用CSS_SELECTOR
:
print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "li.nav-item ul.add-menu.collapse li>span")))])
使用XPATH
:
print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//li[@class='nav-item']//ul[@class='add-menu collapse']//li/span")))])
注意 :您必須添加以下導入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.