2017-08-03 6 views
0

私が書いた以下のスクリプトは、目的のURLに移動しますが、usernameとpasswordの値は入力していません。両方のフィールドのXpathとcssは正しいです。どんな考えがここで間違っていますか? geckodriver 0.18 driver.manage().window().maximize()のバージョンとSelenium WebDriverがWebElementsを見つけられません

org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class websiteClass { 

    public static void main(String[] args) { 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("http://opensource.demo.orangehrmlive.com/"); 
     driver.manage().window().maximize(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

     driver.findElement(By.xpath(".//*[@id='txtUsername']")).sendKeys("Admin"); 
     driver.findElement(By.xpath(".//*[@id='txtPassword']")).sendKeys("admin");  
     driver.findElement(By.xpath(".//*[@id='btnLogin']")).click(); 
    } 

} 

答えて

1

は(実際にはgeckodriver bugです)例外がスローされます。

driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

コードは私のために正常に動作します(プログラムが正常にgeckodriverでウェブサイトへのログイン):2つの行を削除した後

また(WebDriver driver = new FirefoxDriver();前に)あなたは、システムのプロパティをwebdriverを設定していることを確認してください

System.setProperty("webdriver.gecko.driver", PATH_TO_GECKO_DRIVER); 

私もChromeDriverのため変更することなく、あなたのコードを試してみましたが、それが正常に動作します。

まだ問題がある場合は、geckodriverのバージョンと例外スタックトレースを投稿してください。

+0

ありがとうございます。 geckodriverのバージョンを0.11から0.18に更新したところ、コードは完璧に機能しました。 – Joe12

0

Firefox 43.0と2.51では問題なく動作していますが、これはFirefoxのブラウザの問題だと思います。 geckoドライバをセレン3.3 JARで使用するか、Firefox 43.0と2.51 jarセレンを使用してください。

クロムを使用してクロムドライバを更新する場合にこれを使用してください。 Firefoxの場合は、設定プロパティの値のみを変更する必要があります

System.setProperty("webdriver.chrome.driver", "E:\\software and tools\\chromedriver_win32\\chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 
      driver.get("http://opensource.demo.orangehrmlive.com/"); 
      driver.manage().window().maximize(); 
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

      driver.findElement(By.xpath(".//*[@id='txtUsername']")).sendKeys("Admin"); 
      driver.findElement(By.xpath(".//*[@id='txtPassword']")).sendKeys("admin");  
      driver.findElement(By.xpath(".//*[@id='btnLogin']")).click(); 

      driver.close(); 
関連する問題