无法将实例变量值发送到 sendkeys() 方法
Unable to send instance variable value to a sendkeys() method
现在我有一个声明为实例变量的 String 变量,我在一个方法中定义该变量的值,但是当我尝试在另一个方法中使用同一变量的值时,出现此错误:
要发送的密钥应该是非空的 CharSequence
现在我无法将第一个方法的 return 类型事件设置为字符串,因为该方法接受一个参数,因此没有用。
这是我的代码:
String data;
@Keyword
def getFirstRecord(TestObject listData)
{
List<WebElement> firstRecord = WebUiCommonHelper.findWebElements(listData, 20);
data = firstRecord.get(0).getText();
}
@Keyword
def setSearchData(TestObject obj)
{
WebElement txtSearchBox = WebUiCommonHelper.findWebElement(obj, 20);
txtSearchBox.sendKeys(data);
}
我没有发表评论的名誉,所以在这里回答有可能。
请检查以下情况以了解您的代码是否可以解决问题
案例 1)正如 Nandan A 在评论中提到的,检查方法 2 是否在方法 1 之前被调用。
--> 如果是这种情况,请检查您的测试用例配置,看看为什么会这样。
情况 2) 如果按照您的代码预期在方法 1 之后调用方法 2。
--> 然后根据您的评论回复,我可以在方法 2 中看到 String 值仍然为空。因此,该框架可能正在创建您的 class 的新实例,以便每次执行您的 @Keyword 实现。您可以通过几种不同的方式解决这个问题。
- 一种最简单的尝试方法是将 String 变量设为静态。这样,所有实例的值将保持相同,因为静态变量存储在 class 级别而不是 Java.
中的实例级别
- 另一个可以是:从第一种方法将值写入属性文件,然后从第二种方法读取相同的属性文件和相同的键值。
如果这对你有帮助,请告诉我。
现在我有一个声明为实例变量的 String 变量,我在一个方法中定义该变量的值,但是当我尝试在另一个方法中使用同一变量的值时,出现此错误:
要发送的密钥应该是非空的 CharSequence
现在我无法将第一个方法的 return 类型事件设置为字符串,因为该方法接受一个参数,因此没有用。
这是我的代码:
String data;
@Keyword
def getFirstRecord(TestObject listData)
{
List<WebElement> firstRecord = WebUiCommonHelper.findWebElements(listData, 20);
data = firstRecord.get(0).getText();
}
@Keyword
def setSearchData(TestObject obj)
{
WebElement txtSearchBox = WebUiCommonHelper.findWebElement(obj, 20);
txtSearchBox.sendKeys(data);
}
我没有发表评论的名誉,所以在这里回答有可能。
请检查以下情况以了解您的代码是否可以解决问题
案例 1)正如 Nandan A 在评论中提到的,检查方法 2 是否在方法 1 之前被调用。 --> 如果是这种情况,请检查您的测试用例配置,看看为什么会这样。
情况 2) 如果按照您的代码预期在方法 1 之后调用方法 2。 --> 然后根据您的评论回复,我可以在方法 2 中看到 String 值仍然为空。因此,该框架可能正在创建您的 class 的新实例,以便每次执行您的 @Keyword 实现。您可以通过几种不同的方式解决这个问题。
- 一种最简单的尝试方法是将 String 变量设为静态。这样,所有实例的值将保持相同,因为静态变量存储在 class 级别而不是 Java. 中的实例级别
- 另一个可以是:从第一种方法将值写入属性文件,然后从第二种方法读取相同的属性文件和相同的键值。
如果这对你有帮助,请告诉我。