Selenium Java - 新动作(驱动程序))。sendKeys(...)行为

时间:2013-11-27 11:39:07

标签: java selenium

我正在使用以下代码将一些密钥发送到浏览器窗口:

(new Actions(driver)).sendKeys(StringToBeEntered).perform();

我的问题是,如果传递给它的String是预定义的String变量而不是实际的String常量,它对sendKeys的功能有何影响?

sendKeys(strVariable).perform()sendKeys("String").perform会有相同的行为吗?

我正在使用此方法,因为无法选择要发送文本的元素。

1 个答案:

答案 0 :(得分:5)

不,没有区别。

String strVariable = "String"
sendKeys(strVariable).perform();

和...

sendKeys("String").perform();

......在Selenium中是相同的。

原因与Selenium无关,而是Java的工作方式。解释起来有点复杂,但在Java中,方法中的变量按值传递,而不是通过引用传递。因此,在第一个版本中,变量(即字符串)的值被传递给方法,而不是变量引用本身。这意味着,就sendKeys()方法而言,第一个和第二个版本是相同的。

同样重要的是要指出Java中的字符串是不可变的,因此sendKeys方法和方法之外的任何东西都不能改变String本身的值。