【问题标题】:Relative Path to an Image - Selenium图像的相对路径 - Selenium
【发布时间】:2017-05-23 11:25:24
【问题描述】:

图像文件的相对路径如下图testng.xml所示。

<parameter name="adverImage" value="./res/sale_sign.jpg"/>

并且该文件位于以下 res 文件夹中,具有以下文件夹结构

项目运行时,我在控制台上收到以下错误消息。

org.openqa.selenium.InvalidArgumentException: File not found: ./res/sale_sign.jpg

此外,当我指定绝对路径时,相同的代码也可以正常工作。

-- 编辑--

我正在使用以下方法来选择文件。

private void selectImage(String image){
    imageSelect.clear();
    imageSelect.sendKeys(image);
}

如果你能帮我解决这个问题会很有帮助

【问题讨论】:

  • 你可以试试value="res/sale_sign.jpg" 告诉我
  • 我也试过了,但没有成功org.openqa.selenium.InvalidArgumentException: File not found: res/sale_sign.jpg
  • 可以添加一段你尝试过的代码
  • 我已经用上面的值替换了值并再次运行代码。仍然得到给定的错误。但是当我输入绝对路径时它工作正常。
  • 这就是为什么我要求添加您的代码您使用哪种方法来获取文件

标签: java selenium testng


【解决方案1】:

如果你想传递你的图片的完整路径,那么首先需要获取目录路径(项目路径)。

同样使用这个方法:

String projectpath = System.getProperty("user.dir");

它将为您提供当前的项目路径,例如:

C:\Users\narendra.h.rajput\Automation\projectName

现在将您的图像路径附加到您的项目路径中

<parameter name="adverImage" value="/res/sale_sign.jpg"/>

在代码中

private void selectImage(String image)
{
    String location= System.getProperty("user.dir");
    imageSelect.clear();
    imageSelect.sendKeys(location+image); 
}

事情与您给出的绝对路径相同。因为如果你在你的电脑中看到你的 res/image 位置,它将与上面的方法返回相同

【讨论】:

  • 您好,感谢您的帮助。您的建议确实适用于代码&lt;parameter name="adverImage" value="/res/sale_sign.jpg"/&gt;。但是,如果我将项目移动到其他位置,此代码是否有效?
  • 当然,无论您将项目移动到哪里,System.getProperty("user.dir"); 都会为您提供项目路径
猜你喜欢
  • 2013-07-25
  • 2011-08-25
  • 2018-11-05
  • 2010-12-16
  • 1970-01-01
  • 2012-01-10
  • 2013-12-18
  • 2011-07-06
  • 2010-11-29
相关资源
最近更新 更多