2017-09-13 22 views
0

selenium java 3.4.0およびgeckodriver 0.16でスクリプトを実行できましたが、新しいアップデート以降、一部の機能が廃止され、ブラウザの設定コードを変更する必要がありました。今は完全に実行されていません。スクリプト全体を実行しません。selenium javaでスクリプトを実行できません

System.setProperty("webdriver.firefox.marionette", "C:\\geckodriver.exe"); 
     FirefoxProfile profile = new FirefoxProfile(); 
     profile.setPreference("browser.helperApps.neverAsk.saveToDisk", 
       "application/octet-stream;application/csv;text/csv;application/vnd.ms-excel;"); 
     profile.setPreference("browser.helperApps.alwaysAsk.force", false); 
     profile.setPreference("browser.download.manager.showWhenStarting", false); 
     profile.setPreference("browser.download.folderList", 2); 
     profile.setPreference("browser.download.dir", prodDownloadPath); 
     DesiredCapabilities dc = DesiredCapabilities.firefox(); 
     dc.setCapability(FirefoxDriver.PROFILE, profile); 
     dc.setCapability("marionette", true); 
     driver = new FirefoxDriver(dc); 
     driver.manage().window().maximize(); 
     driver.manage().timeouts().implicitlyWait(160, TimeUnit.SECONDS); 
     driver.get(productionUrl); 
     driver.findElement(By.linkText("Demand Summary")).click(); 
     Thread.sleep(2000); 
     driver.findElement(
       By.xpath("//table[@class='TextObject']//tr//td[contains(text(),'16 Weeks Historical Trend')]")).click(); 
     Thread.sleep(2000); 
     WebElement imageUrl = driver.findElement(By.xpath(".//*[@class='QvFrame Document_CH80']/div[2]/div[2]/img")); 
     Actions oAction = new Actions(driver); 
     oAction.moveToElement(imageUrl); 
     oAction.contextClick(imageUrl).build().perform(); 
     driver.findElement(By.linkText("Send to Excel")).click(); 
     Thread.sleep(1000); 

以前のバージョン:(3.5.3にアップグレードした後)

System.setProperty("webdriver.firefox.marionette", "C:\\geckodriver.exe"); 
     FirefoxProfile profile = new FirefoxProfile(); 

     profile.setPreference("browser.helperApps.neverAsk.saveToDisk", 
       "application/octet-stream;application/csv;text/csv;application/vnd.ms-excel;"); 
     profile.setPreference("browser.helperApps.alwaysAsk.force", false); 
     profile.setPreference("browser.download.manager.showWhenStarting", false); 
     profile.setPreference("browser.download.folderList", 2); 
     profile.setPreference("browser.download.dir", prodDownloadPath); 
     driver = new FirefoxDriver(profile); 
     driver.manage().window().maximize(); 

     driver.manage().timeouts().implicitlyWait(160, TimeUnit.SECONDS); 

     driver.get(productionUrl); 
     driver.findElement(By.linkText("Demand Summary")).click(); 
     Thread.sleep(2000); 
     driver.findElement(
       By.xpath("//table[@class='TextObject']//tr//td[contains(text(),'16 Weeks Historical Trend')]")).click(); 
     Thread.sleep(2000); 
     WebElement imageUrl = driver.findElement(By.xpath(".//*[@class='QvFrame Document_CH69']/div[2]/div[2]/img")); 
     Actions oAction = new Actions(driver); 
     oAction.moveToElement(imageUrl); 
     oAction.contextClick(imageUrl).build().perform(); 
     driver.findElement(By.linkText("Send to Excel")).click(); 
     Thread.sleep(2000); 

最新のコード:

コード前に(Javaの3.5.3にアップグレードする前に)

-Selenium Java 3.4.0 
-Selenium Server Standalone 3.4 
-Gecko 0.16 
-FF 46.0  

最新バージョン:

-Selenium Java 3.5.3 
-Selenium Server Standalone 3.5.3 
-Gecko 0.18 
-FF 55.0.3  

私は、スクリプトの実行中にorg.openqa.selenium.ElementNotInteractableException:例外を取得しています。どのバージョンの組み合わせを使用しますか?コードや何かを変更する必要がありますか?助けてください 。

+0

は、あなたがしようとしましたhttps://stackoverflow.com/questions/43868009/how-to-resolve -elementnotinteractableexelect-in-selenium-webdriver ?? – nullpointer

+0

私はすでにその行を自分のコードに追加しています。私は自分のコードを編集しました。どうぞご覧ください –

+0

バージョンの組み合わせには問題があると思いますが、わかりません。誰も現在の作業の組み合わせを提案することができます –

答えて

0

使用Implicit wait

driver.get("https://stackoverflow.com/"); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

や参考のためにexplicit wait

WebDriverWait wait = new WebDriverWait(driver, waitTime); 
wait.until(ExpectedConditions.visibilityOfElementLocated(locator)); 

WebDriverWait Wait= new WebDriverWait(driver,20); 
Wait.until(ExpectedConditions.elementToBeClickable (By.id("Locator"))); 
+0

OPは既にimplicitwaitを使用しています。あなたの答えはコメントのようです – NarendraR

+0

私はその要素をクリックしたいと思います。 –

+0

メソッド名はelementToBeClickableでなければなりません。試してみてください – iamsankalp89

関連する問題