c# - 如何使用 XPath 和使用参数获取值?

标签 c# selenium xpath selenium-webdriver specflow

我正在使用 C#、SpecFlow 和 Selenium 进行 BDD 测试。 我想创建单击按钮的方法。此按钮的名称应取自参数(字符串 p0),如下所示:

    [Given(@"I click (.*) button")]
    public void GivenIClickButton(string p0)
    {
        //Find button p0 and Click on it
    }

使用 XPath 我只能做到这一点:

driver.FindElement(By.XPath("//a[contains(.,'Get Started Now!')]")).Click();

但我更想做这样的事情:

driver.FindElement(By.Name(p0)).Click();

OR

driver.FindElement(By.XPath("//a[contains(.,p0)]")).Click();

我不知道如何让它工作:(

最佳答案

您想在 XPath 查询中包含参数的字符串内容吗?

这应该有效:

var xPathQuery = String.Format("//a[contains(.,'{0}')]", p0);
driver.FindElement(By.XPath(xPathQuery)).Click();

关于c# - 如何使用 XPath 和使用参数获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26949561/

相关文章:

java - Selenium WebDriver 中的 URL Malformed 异常使用 Java 查找断开的链接

excel - Xpath解释

xml - 使用 xpath 选择具有一组多个属性/值的元素

xml - 如何获取 xml 文件中特定值的值?

c# - 如何在 MVC 路由中启用特殊字符?

c# - 在服务器应用程序中存储配置信息的最佳方法是什么? (无数据库)

python - Selenium 错误 : Element is not clickable at point(X, Y),其他元素将收到点击

c# - 如何使用空格作为填充字符来形成初始化 VB.NET 中的控件的字符串

c# - 在 CaSTLe.DynamicProxy 中,是否可以在初始化后更改混合值?

java - Selenium (Chrome) 和 BrowserMob 不适用于 https