将Webdriver元素名称作为参数

时间:2017-11-06 10:03:40

标签: java eclipse selenium

所以目前我有这个代码:

      //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的名称,或者代码中是否有任何其他错误。

我想得到的最终可交付成果是:

  1. 将值添加到文本框中
  2. 这些值存储在变量中,以便稍后进行比较。

1 个答案:

答案 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();并不总是有效