2017-07-21 13 views
0

のために、同一生成元ポリシーを無効にすることはできません。 私はUbuntuの16.04でwebdriver.io +セレンスタンドアロンサーバ+ chromedriverを使用しています。 ページドメインと異なるドメインを持つiframeからタイトルを取得する必要があります。 私はこのトピックを読んで、私のコードで答えを使用しますが、/ Disable same origin policy in Chromeを動作しないように思われています。webdriver.ioは、私は私のautotestsのために、同一生成元ポリシーを無効にする必要はiframe

マイコード:wdio.conf.js

の パート
capabilities: [{ 
     maxInstances: 5, 
     browserName: 'chrome', 
     chromeOptions : { 
      args: ["--disable-web-security", "--user-data-dir:path/to/profile"] 
     } 
    }], 

のiframeのタイトルを取得するための仕様で、私のコードの一部:私はセレンサーバを再起動した

it('step' , function() { 
    var iframeValue = browser.element('#iframe_id').value; 
    browser.frame(iframeValue); 
    browser.waitForExist('title'); //or any element inside head or body 
    browser.getTitle(); //returns page title, not iframe 
    browser.element('title').getText(); //returns '' 
    browser.element('title').getHTML(); //returns '<title>iframe title</title>'  
}); 

は、テストを再起動し、 browser.debug()を使用して、iframeがアクティブな要素であるかどうかを確認し、--user-data-dirパラメータが機能することを確認しました。 webdriver.ioがiframeから値を取得できないか、または--disable-web-securityがまったく機能しない可能性がありますか?

UPDATE:IFRAMEの 構造:

<iframe src="http://www.example.com" id="iframe_id"></iframe> 
    #document 
    <html> 
    <head> 
     <title>iframe title</title> 
    </head> 
    <body> 
     <div> 
      <!--content--> 
     </div> 
    </body> 
    </html> 

答えて

0

は、私はあなたが何をしたいのか理解しないが、あなたは

browser.getHTML('html').then(function(data) { 
// match something from data with regex 
} 

をすれば、あなたが正規表現で検索するすべてのものを一致させることができます。あなたがランダムなウェブサイトをスクラップしておらず、その文書にアクセスできる場合は、クラスを追加するだけです。作成したクラスで.getHTMLまたは.getTextを作成できます。しかし、あなたが 'html'に.getHTMLを作成すると、ドキュメントの完全なhtmlが得られます。これは、ソースコードで見ることができるすべてを意味します。

関連する問題