所以目前我有这个代码:
//WebElement VariableName is to declare the name of the WebElement
//String Id is the Id of the element that you want to send values to
//String valuesToAddIn is the value that you want to enter into the webpage
//String stringNameToCompareLater is the variable to store the values of the input, that you just entered.
public void AddInValueAndCompareString(WebElement VariableName ,String Id , String valuesToAddIn, String stringNameToCompareLater)
{
VariableName = driver.findElement(By.id(Id));
VariableName.sendKeys(valuesToAddIn);
EnsureUserInputByID(Id);
stringNameToCompareLater = VariableName.getText();
}
我想做的是获取我刚刚使用selenium输入的字符串并将其存储在变量中。
但是,如果要为代码的每个部分添加这些行,那将会非常麻烦。
所以我对上面代码的实现如下:
AddInValueAndCompareString(CourseFeePaid,"courseFeePaid","123.90","courseFeePaidCompare");
但是,CourseFeePaid实际上给了我
的错误CourseFeePaid cannot be resolved to a variable
所以我不能在参数中声明WebElement的名称,或者代码中是否有任何其他错误。
我想得到的最终可交付成果是:
答案 0 :(得分:0)
您可以在此处查看相同的问题Java, "Variable name" cannot be resolved to a variable
我猜你的问题不在于方法' AddInValueAndCompareString',但是当你调用这个方法时。
您的实现有太多参数:
1.传递WebElement VariableName的意义在第一行调用VariableName = driver.findElement(By.id(Id));
你可以删除第一个参数,第一行将是WebElement VariableName = driver.findElement(By.id(Id));
2.您作为参数stringNameToCompareLater传递,但在第4行中您还有一个赋值stringNameToCompareLater = VariableName.getText();
,为什么不从参数中删除stringNameToCompareLater并在第4行中有String stringNameToCompareLater = VariableName.getText();
。
因此,您使用值传递两个变量,但从不使用它们,它们实际上是局部变量。这没有意义。
是的,你可以使用getentered text。但您需要在打字后查看它存储的位置。例如。它可能具有价值'属性,所以你可以这样:String enteredtext = VariableName.getAttribute("value");
但它取决于页面,请记住,VariableName.getText();
并不总是有效