2017-01-12 43 views
2

Chromeブラウザのテストを行うには、SeleniumとJavaを使用しています。私の問題は、テストのどこかで、何かをダウンロードし、それがWeb要素をカバーしていることです。私はそのダウンロードバーを閉じる必要があります(私は要素にスクロールできません)。私は多くのことを検索し、新しいタブでダウンロードページを開くには、このように絞り込ま:それは新しいタブを開きますが、ページをダウンロードするには行かないChromeのSeleniumで新しく開かれたタブで「chrome:// downloads /」に移動できません

((JavascriptExecutor) driver).executeScript("window.open('chrome://downloads/');"); 

また、私はこの1追加:

driver.switchTo().window(tabs2.get(1)); 
driver.get("chrome://downloads/"); 

を、それはどちらか動作しませんでした。

私が試した:

driver.findElement(By.cssSelector("Body")).sendKeys(Keys.CONTROL + "t"); 

action.sendKeys(Keys.CONTROL+ "j").build().perform(); 
action.keyUp(Keys.CONTROL).build().perform(); 
Thread.sleep(500); 

をどちらも1でもタブを開きました。

答えて

0

ローカルリソースをプログラムで開くことができないためです。 、(私はなぜ実際に知らない

--disable-web-security --user-data-dir="C:\chrome_insecure" 

しかし、このトリックは、セレンクロムドライバでは動作しません:

Not allowed to load local resource: chrome://downloads/ 

作業溶液は、以下のフラグでChromeを実行することです: クロームでエラーが発生しますaはchrome://versionに表示されるすべての引数を削除しようとしましたが、これは役に立ちません)。溶液上の私のためにそう

は作品一つだけです:

C#の例:

JavaScriptの例:

driver.Navigate().GoToUrl("chrome://downloads/") 

あなたがダウンロードしたファイルを開くために必要がある場合は、別のトリックがあります

document.getElementsByTagName("downloads-manager")[0].shadowRoot.children["downloads-list"]._physicalItems[0].content.querySelectorAll("#file-link")[0].click() 

ChromeはPolymerとShadow DOMを使用するため、簡単な方法はありませんクエリ#file-linkアイテム。

また、href属性の代わりにファイルをダウンロードしたURLを指す実際のダウンロードファイルを開くカスタムイベントハンドラがあるため、.click()メソッドをJavaScriptでプログラムで実行する必要があります。

関連する問題