在< li>中查找项目使用硒的标签

发布于 2025-01-24 05:55:13 字数 911 浏览 2 评论 0 原文

我尝试在'li''标签中使用Selenium找到元素项目(例如 item1,item2,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']") 

Web来源:


<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>

I've tried to find the element item (eg. Item1, Item2, Item3, and Item4) within the 'li' tag using Selenium, but an error happened with this message:

no such element: Unable to locate element

How do I find the items within the 'li' tag element?

elms = driver.find_element(by=By.CLASS_NAME, value='product-list')

or

elms = driver.find_element(by=By.XPATH, value="//*[@id='product-list']") 

Web source:


<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

厌倦 2025-01-31 05:55:14

定位器策略您尝试过有点错误。所需的元素在&lt; li&gt; 具有 class 属性为 产品列表详细信息

<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>

解决方案

以查找元素在&lt; li&gt; 标签中,您可以使用以下任何一个定位器策略

  • 使用 css_selector ::

      elms = driver.find_elements(by.css_selector,“ div.product div.menulist2&gt; ul.product-list li.product-list.detail”)
     
  • 使用 xpath

      elms = driver.find_elements(by.xpath,“ // div [@class ='product'] ] // li [@class ='product-list细节']”)
     

The locator strategies you have tried were a bit errorprone. The desired elements are within <li> having class attribute as 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>

Solution

To find the elements within the <li> tags you can use either of the following locator strategies:

  • Using css_selector:

    elms = driver.find_elements(By.CSS_SELECTOR, "div.product div.menuList2 > ul.product-list li.product-list.detail")
    
  • Using xpath:

    elms = driver.find_elements(By.XPATH, "//div[@class='product']//div[@class='menuList2']/ul[@class='product-list']//li[@class='product-list detail']")
    
忆沫 2025-01-31 05:55:14

您可以使用元素列表:

elements = driver.find_elements(by=By.XPATH, value="//li[@class='product-list detail']")

for e in elements:
    print(e.text)

You can use list of elements:

elements = driver.find_elements(by=By.XPATH, value="//li[@class='product-list detail']")

for e in elements:
    print(e.text)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文