Watir:关闭JavaScript的Web安全性

时间:2018-03-05 12:46:38

标签: javascript selenium selenium-webdriver selenium-chromedriver watir

使用Watir,我可以访问页面iframe的方法:

browser.iframes.map(&:contentwindow) 
# => ["", "", ""]

如果我使用javascript(在我执行Watir代码的相同上下文中),我被阻止(对于所有iframe):

 script =<<-ENDHEREDOC
 var i = 1;
 var iframes = document.querySelectorAll('iframe');
 all = [];
 for (i = 0; i < iframes.length; i++) {
      all.push(iframes[i].contentWindow);
}  
return all;
ENDHEREDOC

elements = browser.execute_script(script)
Selenium::WebDriver::Error::NoScriptResultError: move target out of 
bounds: Blocked a frame with origin "https://my_site.atlassian.net" from accessing a cross-origin frame.

我认为Watir就像phantomjs一样,必须有类似web-security的选项,默认设置为false。然后,看起来安全性再次出现在运行脚本上。是否有可能为脚本保持安全性?

1 个答案:

答案 0 :(得分:1)

对于Chrome,相同的原始政策可以是disabled using the --disable-web-security argument。要将此参数从Watir传递给Chromedriver,您可以这样做:

window.history.replaceState({}, 'Page Name', URL);

或者:

apt-cyg