无法在课堂上获得价值

时间:2018-12-05 11:31:27

标签: c# selenium selenium-webdriver

由于DataType或Static修饰符,我不确定此原因,可能是By数据类型导致的原因:

variableDeclaredClass.cs:

 public static String userGroupName;

app.config声明

<add key="userGroupName" value="Test User Group 01"/>

appconfig-ReaderClass.cs:

userGroupName = ConfigurationManager.AppSettings["userGroupName"];

可执行Query-Test.cs:

By getVerify = By.XPath("//td[@class='boldText' and contains(text(),'" + userGroupName + "')]");

查询由变量userGroupName导致我getVerify变量未获取userGroupName变量的值。

在调试时,我遍历了此变量并获得了Variable(userGroupName)作为单个实例的值。但是,它不包含查询(getVerify)。

调试中的参考屏幕截图:

带有变量的调试器检查点1: enter image description here

带有查询的调试器检查点2: enter image description here

这是由于类级别的Static修饰符引起的吗?

3 个答案:

答案 0 :(得分:1)

代替:

By getVerify = By.XPath("//td[@class='boldText' and contains(text(),'" + userGroupName + "')]");

您可以使用:

By getVerify = By.XPath("//td[@class='boldText' and contains(.,'" + userGroupName + "')]");

或者:

By getVerify = By.XPath("//td[@class='boldText' and text()='" + userGroupName + "']");

答案 1 :(得分:0)

我会这样做:

string selector = $"//td[@class='boldText' and contains(text(),'"{userGroupName}"')]"
By getVerify = By.XPath(selector);

首先要创建完整的选择器,然后将其添加到需要它的地方。

答案 2 :(得分:0)

我需要从方法中使用它

By getVerify;

public void temp()
{
getVerify = By.XPath("//td[@class='boldText' and contains(text(),'" + userGroupName + "')]");
}
相关问题