【问题标题】:The system cannot find the path specified in java系统找不到java中指定的路径
【发布时间】:2014-03-27 16:15:43
【问题描述】:

在 Selenium Webdriver 上工作并使用 Java。我收到错误,因为 系统找不到指定的路径

代码:

package test;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.ResourceBundle;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class OEPR_DefaultTab{
private static Logger Log = Logger.getLogger(OEPR_DefaultTab.class.getName());
private WebDriver driver;
private StringBuffer verificationErrors = new StringBuffer();
Properties p= new Properties();
public Selenium selenium;

@BeforeTest
public void Login() throws Exception {
driver = new FirefoxDriver();
try {
      p.load(new FileInputStream("C:/Login.txt"));
    } catch (Exception e) {
      e.getMessage();
    }
String url=p.getProperty("url");
DOMConfigurator.configure("src/log4j.xml");
Log.info("______________________________________________________________");
Log.info("Initializing Selenium...");

selenium = new DefaultSelenium("localhost", 4444, "*firefox",url);
Thread.sleep(5000);
Log.info("Selenium instance started");


try {
      p.load(new FileInputStream("C:/Login.txt"));
    } catch (Exception e) {
      e.getMessage();
    }
Log.info("Accessing Stored uid,pwd from the stored text file");
String uid=p.getProperty("loginUsername");
String pwd=p.getProperty("loginPassword");
Log.info("Retrieved uid pwd from the text file");
try
{
driver.get("https://10.4.16.159/login");
}
catch(Exception e)
{
    Reporter.log("network server is slow..check internet connection");
    Log.info("Unable to open the website");
    throw new Error("network server is slow..check internet connection");
}
     performLogin(uid,pwd);
}  

public void performLogin(String uid,String pwd) throws Exception  
{
Log.info("Sign in to the OneReports website");
Thread.sleep(5000);
Log.info("Enter Username");
driver.findElement(By.id("loginUsername")).sendKeys(uid);
Log.info("Enter Password");
driver.findElement(By.id("loginPassword")).sendKeys(pwd); 
//submit
Log.info("Submitting login details");
waitforElement(driver,120 , "//*[@id='submit']");
driver.findElement(By.id("submit")).submit();
Thread.sleep(6000);
Actions actions = new Actions(driver);

Log.info("Clicking on Reports link");
if(existsElement("reports")==true){

       WebElement menuHoverLink = driver.findElement(By.id("reports"));
       actions.moveToElement(menuHoverLink).perform();
       Thread.sleep(6000);
       }
       else{
           Log.info("element not present");
           System.out.println("element not present -- so it entered the else loop");

    }
Log.info("Clicking on Extranet link");
if(existsElement("extranet")==true){

       WebElement menuHoverLink = driver.findElement(By.id("extranet"));
       actions.moveToElement(menuHoverLink).perform();
       Thread.sleep(6000);
       }
       else{
           Log.info("element not present");
           System.out.println("element not present -- so it entered the else loop");

    }
Log.info("Clicking on PR link");
if(existsElement("ext-pr")==true){

       WebElement menuHoverLink = driver.findElement(By.id("ext-pr"));
       actions.moveToElement(menuHoverLink).perform();
       Thread.sleep(6000);
       }
       else{ 
           Log.info("element not present");
           System.out.println("element not present -- so it entered the else loop");


    }
Log.info("Clicking on Overview and Evolution PR link");
if(existsElement("ext-pr-backlog-evolution")==true){

    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript("arguments[0].click();", driver.findElement(By.id("ext-pr-backlog-evolution") ));
    //executor.executeScript("document.getElementById('ext-pr-backlog-evolution').style.display='block';");
    //driver.findElement(By.id("ext-pr-backlog-evolution")).click();
     //  WebElement menuHoverLink = driver.findElement(By.id("ext-pr-backlog-evolution"));
      //actions.moveToElement(menuHoverLink).perform();

      Thread.sleep(6000);
       }
       else{
           Log.info("element not present");
           System.out.println("element not present -- so it entered the else loop");
    }
}

//Filter selection-1


@Test()
public void Filterselection_1() throws Exception{

BufferedReader in = new BufferedReader(new FileReader("C:/FilerSection/visualization.txt"));\\ Here i'm getting error
String line;
line = in.readLine();
in.close();

String[] expectedDropDownItemsInArray = line.split("=")[1].split(",");

// Create expected list :: This will contain expected drop-down values

ArrayList<String> expectedDropDownItems = new ArrayList<String>();
for(int i=0; i<expectedDropDownItemsInArray.length; i++)
    expectedDropDownItems.add(expectedDropDownItemsInArray[i]);

// Create a webelement for the drop-down
WebElement visualizationDropDownElement = driver.findElement(By.id("visualizationId"));

// Instantiate Select class with the drop-down webelement
Select visualizationDropDown = new Select(visualizationDropDownElement);

// Retrieve all drop-down values and store in actual list
List<WebElement> valuesUnderVisualizationDropDown  = visualizationDropDown.getOptions();

ArrayList<String> actualDropDownItems = new ArrayList<String>();

for(WebElement value : valuesUnderVisualizationDropDown){
    actualDropDownItems.add(value.getText());
}

// Compare expected and actual list
for (int i = 0; i < actualDropDownItems.size(); i++) {
    if (!expectedDropDownItems.get(i).equals(actualDropDownItems.get(i)))
    System.out.println("Drop-down values are NOT in correct order");
}
}


private boolean existsElement(String id) {
try {
    driver.findElement(By.id(id));
} catch (Exception e) {
    System.out.println("id is not present ");
    return false;
}

return true;
}


 private void waitforElement(WebDriver driver2, int i, String string) {
// TODO Auto-generated method stub

}


@AfterTest

public void tearDown() throws Exception {
Log.info("Stopping Selenium...");
Log.info("______________________________________________________________"); 
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
  Assert.fail(verificationErrorString);
}
}
}       

请检查代码给我一些解决方案。
How to compare the drop down options is matching with the UI options in Selenium WebDriver? 中存在的场景 对于这种情况,我正在尝试编写脚本。请同时检查链接。

【问题讨论】:

  • 抱歉说的很明显,但如果你在 Windows 上,那么你应该将文件路径指定为 C://FilerSection//visualization.txt 即转义 / 符号。

标签: java selenium selenium-webdriver webdriver


【解决方案1】:

如果这是您看到的确切文本,这通常不是代码问题 - 这意味着您需要使用安装 java 的目录更新 PATH 环境变量。

【讨论】:

  • 我给出的相同路径 try { p.load(new FileInputStream("C:/FilerSection/visualization.txt")); // p.load(new FileInputStream("C:/FilerSection/Dropdown.txt")); } 捕捉(异常 e){ e.getMessage(); } Log.info("从存储的文本文件中访问存储的 id"); String id=p.getProperty("visualizationId"); Log.info("从文本文件中检索到的 id"); performLogin1(id);
  • 它正在加载属性文件。我在这一行遇到的问题 BufferedReader in = new BufferedReader(new FileReader("C:/FilerSection/visualization.txt"));
  • Stackexchange 的疯狂之处在于,您需要更多的声誉来评论而不是回答。暂时我必须提供答案,直到我有足够的声誉发表评论:)。无论如何,从我看到的其他帖子中,此错误消息意味着 PATH 环境变量是错误的。但是,如果有更多信息表明正在发生其他事情,它确实会出现。
  • @user3149905:你是说你为 FileReader() 和 FileInputStream() 提供相同的路径,并且后者成功而前者失败?您是否有机会在不同的环境中运行这些单独的程序?
【解决方案2】:

替换

BufferedReader in = new BufferedReader(new FileReader("C:/FilerSection/visualization.txt"));

BufferedReader in = new BufferedReader(new FileReader("C:\\FilerSection\\visualization.txt"));

这应该会有所帮助。

【讨论】:

  • @user11111 :如果您得到正确答案或需要更多信息,请在此处告知。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
  • 2011-02-23
  • 2018-12-12
  • 2016-04-23
相关资源
最近更新 更多