0

私はテストの一環としてJavaScriptを実行しようとしています。以下はhttpsサイト - chrome selenium webdriverでスクリプトが実行されない

私のクロムドライバの設定

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("test-type"); 
     options.addArguments("headless"); 
     options.addArguments("--disable-web-security"); 
     options.addArguments("--allow-running-insecure-content"); 
     options.addArguments("--allow-insecure-localhost"); 
     options.addArguments("--reduce-security-for-testing"); 
     capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
     driver = new ChromeDriver(capabilities); 
     driver.manage().timeouts().setScriptTimeout(5, TimeUnit.SECONDS); 
     driver.get("https://samplesite.com/"); 

であると私は、Javascriptの実行プログラムを使用してサイト上でスクリプトを実行しようとしています。

JavascriptExecutor executor = (JavascriptExecutor) driver; 
executor.executeScript(code); 

これは、以下のエラーのために動作しません。

The page at 'https://samplesite.com/' was loaded over HTTPS, 
but requested an insecure XMLHttpRequest endpoint 'http://localhost:8080/myapi'. 
This request has been blocked; the content must be served over HTTPS. 

しかし、同じことが、私はheadlessオプションを削除し、コンソールに警告メッセージと見えブラウザとして実行したときに働いています。

誰かが私にこれを案内できますか?

+0

実行したいスクリプトは何ですか? –

+0

スクリプトはページからhref要素を特定し、ローカルにホストされている自分のアプリケーションに投稿します。 –

答えて

0

エラースタックトレースを見ると、それをすべて言う:

The page at 'https://samplesite.com/' was loaded over HTTPS, 
but requested an insecure XMLHttpRequest endpoint 'http://localhost:8080/myapi'. 
This request has been blocked; the content must be served over HTTPS. 

URL https://samplesite.com/HTTPSがロードされましたが、jquery post scriptHTTP

On an https webpage you can only make Jquery/AJAX Request to https webpage only

上のaaのウェブページを呼び出すようにしようとしています

Jquery Requesthttpまたはhttpsを指定しているかどうかを知ることは面白いでしょう。

また、要求しているデータが同じドメインにないため、データを提供するドメインでCORSまたはJSONPを使用できるようにする必要があります。

+0

はい。私はその問題を理解している。私が質問で述べたように。私はヘッドレスオプションを使用していない場合、これは完璧に実行されています。だから私はこれもヘッドレスオプションで動作するようにソリューションを探しています。 –

関連する問題