c# - FindElement - div 类中的嵌套跨度类

标签 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>

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

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

需要做的事情是按类进行:“ingredients-container-header-close”,然后以某种方式“向下”到跨度。有人能告诉我怎么做吗? (1个父元素和几个子元素,选择那个子元素)

最佳答案

你可以使用这个 Xpath :

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

cssSelector 将是:

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

尝试其中之一!

关于c# - FindElement - div 类中的嵌套跨度类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49893466/

相关文章:

javascript - 使用 codedUI 选择网页中隐藏的单选按钮

ruby-on-rails-3 - 没有方法 error_messages selenium 和 capybara-webkit

java - 在 protected 环境中使用独立的 Selen 工具?

python - 如何使用 selenium python 获取网站 SSL 证书到期、颁发者等的详细信息?

javascript - Selenium webdriver driver.findElement() 方法返回对象 - 为什么?我做错了什么?

c# - 在 Silverlight 4 中使用 ComAutomationFactory 遍历 Word 文档字段

c# - 仅当任务未在指定时间内完成时才显示进度对话框

C# .net Core 数据库启用后重新连接Oracle

selenium - 使用基本测试类时的 TestNg 并行测试/类

selenium-webdriver - 输入后验证 selenium Webdriver 的 sendKeys(input)