FindElement - div类中的嵌套span类

时间:2018-04-18 07:17:08

标签: c# selenium selenium-webdriver

我需要识别“X”(取消)按钮。 HTML看起来像这样:

<div class="ingredients-container-header">
<div class="ingredients-container-header-name">Ingredients:</div>
<div class="ingredients-container-header-close">
<span class="material-icons cancel-icon " style="color: rgba(0, 0, 0, 0.87); position: relative; font-size: 24px; display: inline-block; user-select: none; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;">cancel</span></div></div>

尝试直接按span执行但是它不起作用(问题可能是,它不是唯一的(许多取消按钮具有相同的跨度)

driver.FindElement(By.XPath("//span[@class ='material-icons cancel-icon')]"));

需要做的事情是,通过课程:“成分 - 容器 - 标题 - 关闭”,然后以某种方式“下降”到跨度。谁能告诉我怎么做? (1个父元素和少数子元素,选择那个子元素)

2 个答案:

答案 0 :(得分:3)

您可以使用 Xpath

//div[text()='Ingredients:']/following-sibling::div/span[contains(@class,'cancel-icon')]

cssSelector 将是:

div[class^='ingredients-container']+div>span  

尝试其中一个!

答案 1 :(得分:2)

您的期望必须为//div[@class='ingredients-container-header-close']/span[@class='material-icons cancel-icon ']。你有类名的额外空间。