我嘗試使用 Selenium 在“li”標簽中查找元素項(例如Item1、Item2、Item3和Item4 ),但此訊息出現錯誤:
no such element: Unable to locate element
如何在“li”標簽元素中找到專案?
elms = driver.find_element(by=By.CLASS_NAME, value='product-list')
或者
elms = driver.find_element(by=By.XPATH, value="//*[@id='product-list']")
網路來源:
<div class='product'>
<div class='menuList1'> Menu1 Menu2</div>
<div class='menuList2'> aaa </div>
<ul id='productDetail' class='product-list'>
<li class='product-list detail' id='1'> Item1</li>
<li class='product-list detail' id='2'> Item2</li>
<li class='product-list detail' id='3'> Item3</li>
<li class='product-list detail' id='4'> Item4</li>
</ul>
</div>
uj5u.com熱心網友回復:
您嘗試過的定位器策略有點容易出錯。所需元素的<li>類屬性為product-list detail
<div class='product'>
<div class='menuList1'> Menu1 Menu2</div>
<div class='menuList2'> aaa </div>
<ul id='productDetail' class='product-list'>
<li class='product-list detail' id='1'> Item1</li>
<li class='product-list detail' id='2'> Item2</li>
<li class='product-list detail' id='3'> Item3</li>
<li class='product-list detail' id='4'> Item4</li>
</ul>
</div>
解決方案
要在<li>標簽中查找元素,您可以使用以下任一定位器策略:
使用css_selector:
elms = driver.find_elements(By.CSS_SELECTOR, "div.product div.menuList2 > ul.product-list li.product-list.detail")使用xpath:
elms = driver.find_elements(By.XPATH, "//div[@class='product']//div[@class='menuList2']/ul[@class='product-list']//li[@class='product-list detail']")
uj5u.com熱心網友回復:
您可以使用元素串列:
elements = driver.find_elements(by=By.XPATH, value="//li[@class='product-list detail']")
for e in elements:
print(e.text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/466294.html
