由于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
)。
调试中的参考屏幕截图:
这是由于类级别的Static修饰符引起的吗?
答案 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 + "')]");
}