2017-11-24 11 views
0

を使用してFirefoxのバイナリを設定する...私はまだきれいにフォーマットする方法を見つけ出すことはなかった。..が希望の機能恐ろしいの書式設定のため申し訳ありません

私はセレンを使用してFirefoxを起動しようとしています。 FirefoxはAppDataフォルダにインストールされます。したがって、私は

1. Getting below error on - driver.manage().window().maximize(); 
org.openqa.selenium.WebDriverException: Failed to find width field 
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:54:15.039Z' 
System info: host: 'N0610114502', ip: '10.9.21.178', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0' 
Driver info: org.openqa.selenium.firefox.FirefoxDriver 

2. If I comment out that line and run the program, i get the below error 
org.openqa.selenium.InvalidArgumentException: 
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:54:15.039Z' 
System info: host: 'N0610114502', ip: '10.9.21.178', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0' 
Driver info: org.openqa.selenium.firefox.FirefoxDriver 
Capabilities [{moz:profile=C:\Users\cc305718\AppData\Local\Temp\rust_mozprofile.sIobxPYVJ8iA, rotatable=false, timeouts={implicit=0, page load=300000, script=30000}, pageLoadStrategy=normal, platform=XP, specificationLevel=0, moz:accessibilityChecks=false, acceptInsecureCerts=true, browserVersion=52.5.0, platformVersion=6.1, moz:processID=6712, browserName=firefox, javascriptEnabled=true, platformName=XP}] 
Session ID: 030d91eb-9219-43c9-9ade-210005b150b8 

は、私が間違ってバイナリを設定しています。この平均をい...以下のコード

System.setProperty("webdriver.gecko.driver","C:\\path\\geckodriver.exe"); 
String pathToBinary = "C:\\Users\\me\\AppData\\Local\\Microsoft\\AppV\\Client\\Integration\\D90C0155-81ED-4977-B52D-E34EAA24FB3C\\Root\\VFS\\ProgramFilesX86\\Mozilla Firefox\\firefox.exe"; 
ProfilesIni profile = new ProfilesIni(); 
FirefoxProfile testProfile = new FirefoxProfile(); 
testProfile.setAcceptUntrustedCertificates(true); 
testProfile.setAssumeUntrustedCertificateIssuer(true); 
DesiredCapabilities dc = DesiredCapabilities.firefox(); 
dc.setCapability(FirefoxDriver.PROFILE, testProfile); 
dc.setCapability(FirefoxDriver.BINARY, pathToBinary); 
driver = new FirefoxDriver(dc); 
driver.manage().deleteAllCookies(); 
driver.manage().window().maximize(); 
//driver.manage().window().setSize(new Dimension(1920, 1080)); 

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
System.out.println("beforee driver.get"); 
driver.get("https://www.google.co.za"); 
私はここで2つの問題を抱えてい

を用いて所望の機能オブジェクトのバイナリのパスを設定しようとしました方法?もしそうなら正しい使い方は何ですか?あなたはセレンを求めているので、私はこれがあなたに起こっていると考えてい

org.openqa.selenium.WebDriverException: Failed to find width field 

は、私はあなたが見ている最初のエラーの場合は、以下の廃止予定の方法

FirefoxProfile profile = new FirefoxProfile(); 
FirefoxBinary binary = new FirefoxBinary(new File("C:\\path to firefox\\firefox.exe")); 
driver = new FirefoxDriver(binary, profile); 

答えて

0

を使用することに熱心ではありませんよブラウザウィンドウを最大化するには、ブラウザウィンドウを最大化する必要があります。だから実際にはこの幅パラメータを設定していないので、"幅フィールドの検索に失敗しました"で失敗しています。

したがって、の前に、のコード行がウィンドウを最大化する呼び出し(上記のサンプルコードでこれをコメントアウトしています)にする必要があります。

driver.manage().window().setSize(new Dimension(1920, 1080)); 

最初のエラーが修正された状態で試してください。問題が解決しない場合は、お気軽にお問い合わせください。私ができるなら喜んで助けて!

アップデート1:

右私の次の提案はあなたのwebdriverをインスタンスを作成している時点で、わずかにあなたのコードをオーダーし直すことです。私はちょうどすべてが正しい順序であることを確実にしたい(私は前にセレンと文の順序の問題を見てきました)、あなたはまだエラー(複数可)を見ているかどうか:

driver = new FirefoxDriver(dc); 
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
driver.get("https://www.google.co.za"); 
driver.manage().window().setSize(new Dimension(1920, 1080)); 
driver.manage().window().maximize(); 

アップデート2 :

OK私はあなたのヤモリドライバを設定しているかと間違って何かがあるように、我々は今、あなたのwebdriverをインスタンスを呼び出しているかと間違って何もないことを満足しています。

私はあなたがこれらの行の両方における実際のFirefoxのインストール用バイナリを設定しているがわかります

String pathToBinary = "C:\\Users\\me\\AppData\\Local\\Microsoft\\AppV\\Client\\Integration\\D90C0155-81ED-4977-B52D-E34EAA24FB3C\\Root\\VFS\\ProgramFilesX86\\Mozilla Firefox\\firefox.exe"; 
dc.setCapability(FirefoxDriver.BINARY, pathToBinary); 

FirefoxのバイナリへのパスがPATHにない場合にのみこれらが設定されます。したがって、あなたのPATH上にある場合は、これらの行をコメントアウトしたり削除したりできます。

次のようにもtruemarionette機能を設定する必要があります。

dc.setCapability("marionette", true); 

だから、あなたが今、あなたのwebdriverをインスタンスをセットアップする方法の概要を与えるために:

DesiredCapabilities dc = DesiredCapabilities.firefox(); 
dc.setCapability("marionette", true); 
WebDriver driver = new FirefoxDriver(dc); 
driver.get("https://www.google.co.za"); 
+0

私が作りましたあなたが提案したような変化。動作していないようです...私は以下のエラーが発生しました:launchBrowser org.openqa.selenium.WebDriverException:setWindowRect ビルドインフォメーション:バージョン: '3.5.3'、リビジョン: 'a88d25fe6b'、時刻: 2017-08-スタックトレースが必要な場合は教えてください – Jackranda

+0

「下のエラー」と言うと、最初のエラーは表示されなくなりますが、まだ2番目のエラーが表示されています。 – AJC24

+0

第2のものではない...まだ幅について文句を言っています – Jackranda

関連する問題