[英]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.