【问题标题】:Have a String stored in one class and call the same with value in other class将字符串存储在一个类中,并在另一个类中调用相同的值
【发布时间】:2013-02-08 10:28:22
【问题描述】:

我有一个类,我可以在其中获取文本字段的值,代码如下

driver.findElement(By.xpath(OR.getProperty("voyage_in"))).sendKeys("1001");
String voyagein_id=driver.findElement(By.xpath(OR.getProperty("voyage_in"))).getAttribute("value"); System.out.println(voyagein_id);

我已将 String voyagein_id 声明为全局
我有另一个类,我称之为它,代码是:

import Int_Script.Int_appointment --(这是第二类)
System.out.println(Int_barge_appointment.voyagein_id);

我将 2 类都作为套件文件运行,并且 voyagein_id 始终显示为空。
我需要在 voyage_id 中获取第一类的值,当第二类运行时,必须输入文本字段的 voyagein_id 的值。

【问题讨论】:

  • 您确定voyagein_id 是“全局”的吗?这意味着,它是类的public(或至少包私有)实例变量,而不是在方法中本地声明吗?你确定它没有被同名的局部变量遮蔽吗?从您的代码来看,您似乎正在重新声明基本上忽略原始变量的变量。如果您在代码 sn-p 中删除 String 类型声明,它会编译吗?
  • 是的,它是全局的“public static String voyagein_id;”在第一个脚本中,它获取 voyagein_id 的值并打印,但第二个它显示为 null
  • @ Slance ,@Umamaheshwar - 谢谢我明白了,我已经在全局中声明了两次变量,另一次在方法中声明了。首先对 uderstand 很愚蠢 +1

标签: webdriver selenium-webdriver


【解决方案1】:

请验证您的 OR.properties 文件一次,并将其复制到代码所在的正确位置。我认为您没有正确更新属性文件。前天我也遇到了同样的问题。我已经更新了复制 jar 文件的属性文件,然后它就可以工作了。在此之前我也得到了 Null 值。

您是在运行任何 Jar 文件还是直接从 Eclipse 运行?

【讨论】:

  • 你的意思是说我要更新到最新的jar包?
  • 我的意思是,您使用的是 OR.properties 文件来存储属性,对吧?如果是这样,如果您正在为您的代码创建一个 jar 文件并从命令提示符运行它,那么您必须将 OR.properties 文件复制到 jar 文件所在的位置。这意味着将最新的 OR.properties 文件复制到 jar 文件位置。
  • 是的,我正在使用 OR.properties 来存储属性。我使用junit运行。只需右键单击并以junit身份运行。无论如何,我将属性文件复制到 jar 文件位置。然后也没有用。我的所作所为有什么联系吗?
  • 即使我删除了属性文件并直接给出 Xpath 而不是从属性中调用我也没有得到值。
  • 您在该字段中输入数值,对吗?您在此字段中输入的值是 driver.findElement(By.xpath(OR.getProperty("voyage_in"))).sendKeys("1001");是否存储?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-04
  • 2019-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多