当前位置: 首页 > 知识库问答 >
问题:

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

童华池
2023-03-14

我正在使用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();

但我想做更多类似的事情:

司机。FindElement(By.名称(p0))。单击();

驾驶员FindElement(By.XPath(“//a[contains(,p0)]”)。单击();

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

共有2个答案

袁晟
2023-03-14

可能已经晚了,但这种构建表达式的方式容易受到Xpath注入的影响,请查找Xpath预编译查询(准备好的语句brother:)。

它们为您提供安全和性能优势。

冯庆
2023-03-14

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

这应该行得通:

var xPathQuery = String.Format("//a[contains(.,'{0}')]", p0);
driver.FindElement(By.XPath(xPathQuery)).Click();
 类似资料:
  • 问题内容: Javascript没有提供执行此操作的核心方法,那么该怎么做呢? 问题答案: 因此,您可以使用:

  • 问题内容: 在JSP中,如何从URL获取参数? 例如,我有一个www.somesite.com/Transaction_List.jsp?accountID=5 要获取的 URL5 。 是否有request.getAttribute(“ accountID”)之类的会话或类似内容? 问题答案: 在GET请求中,请求参数取自查询字符串(URL上问号后面的数据)。例如,URL http://hostn

  • 问题内容: 我正在尝试使用Guava文档示例中所示的方式在运行时查找类型参数: 运行此代码时,将得到输出。为什么不反而变得呢? 问题答案: 此“ hack”不适用于运行时类型的值。 Java无法在此处实例化类时传播推断的类型参数 到宣言 因此,不知道应该指的是什么。 该的Javadoc状态 构造一个新的类型标记,同时 在的上下文中解析自由类型变量 。 客户端创建一个空的匿名子类。 这样做会将类型参

  • 我尝试使用 在此输入图像描述 如果我打印出来,我会得到: 我想:“荷兰人在中国的问题。”

  • 我希望在JMETER中实现以下功能 JMeter加载带有id号的CSV文件 Jmeter中的每个用户/线程选择一个id号,并将其添加到他们的HTTP请求中,例如HTTP:www.testsite.com/test.php?id=x 重复步骤2,选择文件中的下一个id号。 这样,我就可以测试我的servlet是否使用连接池执行多个线程。 谢谢

  • 我想使用Xpath提取父节点和子节点之间的vale。如何做到这一点? 如何将文本值输出为“要提取的值”?它不应该是“要提取密钥的值”“关键”应该被忽略。