【发布时间】:2017-12-27 10:58:48
【问题描述】:
我需要为我的自动测试禁用同源策略。 我在 Ubuntu 16.04 上使用 webdriver.io + selenium 独立服务器 + chromedriver。 我需要从具有与页面域不同的域的 iframe 获取标题。 我已经阅读了这个主题并在我的代码中使用了答案,但它似乎不起作用/ Disable same origin policy in Chrome.
我的代码: 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>'
});
我已经重新启动 selenium 服务器,重新启动测试,使用 browser.debug() 检查 iframe 是否是活动元素,检查配置文件 --user-data-dir 参数是否有效。 webdriver.io 是否可能无法从 iframe 获取值或 --disable-web-security 根本不起作用?
更新: 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>
【问题讨论】:
标签: node.js selenium iframe same-origin-policy webdriver-io