C# FindElement-div类中的嵌套跨类

C# FindElement-div类中的嵌套跨类,c#,selenium,selenium-webdriver,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

我需要识别“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>

需要做的事情是通过类:“配料容器标题关闭”,然后以某种方式“向下”到跨度。有人能告诉我怎么做吗?(1个父元素而不是几个子元素,选择那个子元素)

您的表达式必须是
//div[@class='components-container-header-close']/span[@class='material-icons-cancel-icon']
。类名中有额外的空间。

您可以使用此Xpath:

//div[text()='Ingredients:']/following-sibling::div/span[contains(@class,'cancel-icon')]
css选择器将是:

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

试试这个

不是这样工作的,两个都试过了,有/没有额外的space@lxi11我纠正了我的xpath,但其他人得到了更正确的答案。是的,这个xpath也是有效的+1还可以正常工作!你们真是太棒了!谢谢!:)您试用过这个cssSelector或Xpath吗?@CruiseScandey-谢谢,Xpath工作正常:首先我们要查找header div(查找其中的文本),然后我们使用/“following sides::div/span[contains(@class,…)-我不明白,同级是同一级别的元素?还有什么”:“是指?谢谢。following-sibles是指紧跟在当前nodeYes之后的同级同级同级元素,但这里我们在Xpath中有前面的同级同级元素和后面的同级同级元素。请参阅此链接以了解Xpath和关于以下内容的清晰度:::
div[class^='ingredients-container']+div>span