繁体   English   中英

如何使用 Selenium webdriver 定位嵌套元素?

[英]How to locate a nested element by using Selenium webdriver?

我有以下 html:

<label class="control-label col-sm-4" for="bla-bla">
   "Value date"
   ::after
</label>
<div class="col-sm-8">
   <div class="row">
      ::before
      <div class="col-sm-2>
         <label class="control-label" for="bla-bla">
            "Priority"
            ::after
         </label>
      </div>
      ::after
   </div>
   ::after
</div>

我需要同时提取“价值日期”和“优先级”元素等元素。 这是我目前的解决方案:

elements = [f for f in driver.find_elements(By.XPATH, "//*[contains(@class, 'control-label')]")]

它与“Value date”等元素完美配合,但看不到“Priority”元素。 我看到“优先级”嵌套在此处的“生效日期”元素中。 也许,它会以某种方式影响 XPATH 的工作方式。 我尝试添加精确的 class 匹配项,但没有任何结果:

elements = [f for f in driver.find_elements(By.XPATH, "//*[contains(@class, 'control-label') or @class = 'control-label']")]

实际上 XPATH 工作正常。 问题在于我接下来对找到的元素所做的事情。 我正在使用 .text() 方法提取文本,但它并不总是按预期工作。 如果遇到类似问题,请尝试使用 .get_attribute('innerText') 和 .get_attribute('textContent')。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM