C# Selenium 循环遍历 Span 类 XPATH 中的输入按钮

标签 c# selenium xpath

我正在尝试在 C# 中创建正确的 XPATH 语法,以单击亚马逊购物车屏幕上的删除按钮。购物车中可能有一件或多件商品,因此我希望遍历删除按钮。我无法通过仅执行包含“删除”一词的操作来找到“删除”按钮。我终于说好吧,让我找到屏幕上的所有按钮。我将遍历它们并使用每个链接中的文本来确定我需要单击哪个链接。唯一的问题是,它确实在页面上找到了 20 个不同的项目 (("//input[@type='submit']")),但所有文本字段都是空的。我是这个 XPATH 语法的新手,它确实给我带来了问题。任何帮助,将不胜感激。

以下是我尝试过的许多事情中的一些以及相关信息的屏幕截图:

var links = driver.FindElements(By.XPath("//table[contains(@name, 'ReportViewer_fixedTable')]"));
var links = driver.FindElements(By.XPath("//css=a[name^='submit.delete']"));
var links = driver.FindElement(By.CssSelector("table[id*='ReportViewer_fixedTable']"));
var links = driver.FindElements(By.XPath("//button[@type='submit'][text()='Delete']")); WORKED DIDNT FIND ANYTHING
var links = driver.FindElements(By.XPath("//input[@type='submit'][contains(text(),'Delete')]"));  //WOREKED DIDNT FIND ANYTHING
var links = driver.FindElements(By.XPath("//input[@type='submit']"));
var links = driver.FindElements(By.XPath("//div[@class='a-row sc-action-links']/span[@class='a-declarative']"));

Chrome 检查: enter image description here

当我循环查找//input[@type='submit'] 时,我的输出是什么样子的。你可以看到 Text 是空的。对他们所有人来说都是这样。

enter image description here

最佳答案

xpath text()匹配上下文节点的文本节点子节点,而 input 没有包含所需文本 Delete 的子元素。

实际上 Delete 文本存在于 input 元素的 value 属性中,因此您应该尝试匹配具有 value 属性的 Delete 文本作为 @value = '删除'

因此,要使用 Xpath 查找所有删除按钮,请尝试如下操作:-

var deleteButtons = driver.FindElements(By.XPath("//input[@type='submit'][@value='Delete']")); 

或者使用 CssSelector 如下:-

var deleteButtons = driver.FindElements(By.CssSelector("input[type='submit'][value='Delete']")); 

更新: 对于将来可能需要它的任何人。这是成品:

var deleteButtons = driver.FindElements(By.CssSelector("input[type='submit'][value='Delete']"));

        foreach (var link in deleteButtons)
        {
            link.Click();
        }

关于C# Selenium 循环遍历 Span 类 XPATH 中的输入按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39500248/

相关文章:

c# - 拒绝基于对象数据的拖放?

c# - ComboBox 在 windows 8.1 或 windows phone 8.1 中选择的项目

ruby - 如何使用 Ruby 在 Selenium WebDriver Remote 上设置 firefox 配置文件

xpath - Xpath,用于检索父级内部的所有标签

c# - 不再为集合返回 ObservableCollection

c# - Awesomium 离屏 webview 从不加载页面

java - Selenium Web 驱动程序单击图像

python - 如何在 Anaconda 上安装 Selenium 以及如何在 Anaconda 的 Spyder IDE 上将 selenium 与 Scrapy 一起使用?

xml - XSLT:XPATH 运算符 "less than or equal to"计算不正确

Java 使用 XPath 解析 iTunes XML 库