C# 找不到使用Selenium的元素

C# 找不到使用Selenium的元素,c#,selenium,C#,Selenium,我要单击一个元素: <td valign="top" class="bI"> <div role="button" class="d-k-l b-c b-c-R xD" tabindex="0" style="user-select: none;">Cancel</div> </td> 我怎样才能得到这个元素。谢谢大家! 更新: 我的元素在iframe下,现在它工作了。谢谢大家! 使用以下Xpath: //div[text()

我要单击一个元素:

<td valign="top" class="bI">
    <div role="button" class="d-k-l b-c b-c-R xD" tabindex="0" 
     style="user-select: none;">Cancel</div>
</td>
我怎样才能得到这个元素。谢谢大家!

更新: 我的元素在iframe下,现在它工作了。谢谢大家!

使用以下Xpath:

//div[text()='Cancel']  
如果元素不可见,则应使用显式等待等待等待一段时间,直到其可见。

尝试以下Xpath:

driver.FindElementByXPath("//td[@class='bI']//div[@class='d-k-l b-c b-c-R xD']").Click();

使用这个Xpath

driver.FindElement(By.XPath("//div[@class='d-k-l b-c b-c-R xD']")).Click();


你得到了什么结果?元素未找到或元素不可单击?@IshitaShah元素未找到尝试显式/隐式等待或检查按钮是否位于框架内/iframe@Andersson啊,它在一个框架下。这是我的错误,谢谢你:请问你的错误跟踪?并检查它是否在iframe中?您正在使用的类d-k-l b-c b-c-R xD是动态的,应该避免这样做。您可以使用第二个规定。在这一点上,您也不需要使用contains(text(),'Cancel'),因为它不是子部分或其他内容,我只是给出我的意见。
driver.FindElementByXPath("//td[@class='bI']//div[contains(text(),'Cancel']").Click();
driver.FindElement(By.XPath("//div[@class='d-k-l b-c b-c-R xD']")).Click();
driver.FindElement(By.XPath("//div[@text ='Cancel']")).Click();
driver.FindElement(By.XPath("//div[@class='d-k-l b-c b-c-R xD'][@text='Cancel']")).Click();