webdriver.io 无法为 iframe 禁用同源策略

     2023-02-27     207

关键词:

【中文标题】webdriver.io 无法为 iframe 禁用同源策略【英文标题】:webdriver.io can't disable same-origin-policy for iframe 【发布时间】: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>

【问题讨论】:

【参考方案1】:

我不明白你想做什么,但如果你这样做

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

您可以使用正则表达式匹配您搜索的所有内容。如果您不是废弃一个随机网站并且您可以访问该文档,那么只需添加一个类。然后你可以在你创建的类上制作 .getHTML 或 .getText 。但是,如果您在“html”上创建 .getHTML,那么您将获得文档的完整 html,这意味着您可以在源代码中看到的所有内容。

【讨论】:

在 webdriver.io 中查找父元素

】在webdriver.io中查找父元素【英文标题】:Findingaparentelementinwebdriver.io【发布时间】:2016-12-2411:13:24【问题描述】:我在原始webdriver中看到了几个使用getAttribute(\'xpath\')并附加到该\'/..\'的解决方案,但webdriver.io没有xpath属性,所... 查看详情

如何等待 WEBdriver.io 的 Ajax 调用完成

】如何等待WEBdriver.io的Ajax调用完成【英文标题】:HowtoWaitforAjaxcallstocompleteforWEbdriver.io【发布时间】:2018-06-0914:12:26【问题描述】:我试图弄清楚如何让webdriver.io在单击按钮后等待所有ajax请求完成。不幸的是,document.readyState始... 查看详情

Webdriver.io 因 NoSessionIdError 而崩溃

】Webdriver.io因NoSessionIdError而崩溃【英文标题】:Webdriver.iocrasheswithNoSessionIdError【发布时间】:2015-12-0814:50:27【问题描述】:我正在尝试让webdriver.io和Jasmine正常工作。在theirexample之后,我的脚本在test/specs/first/test2.js(根据配置)... 查看详情

Selenium & webdriver.io 如何使用 executeScript?

】Selenium&webdriver.io如何使用executeScript?【英文标题】:Selenium&webdriver.iohowtouseexecuteScript?【发布时间】:2016-07-1318:26:39【问题描述】:我正在尝试使用Selenium、WebDriver.io和Node.js(使用Mocha)测试一个简单的表单。所以我有这... 查看详情

WebDriver.io 没有控制台输出

】WebDriver.io没有控制台输出【英文标题】:WebDriver.ionoconsoleoutput【发布时间】:2018-01-2023:58:29【问题描述】:我正在使用以下堆栈来运行几个测试:NodeJsSeleniumstandalonegeckodriverthoughtIusechromewebdriver.iomochachai所以毕竟我的first_test.js... 查看详情

无法为 iframe 使用可拖动的 jQuery UI

】无法为iframe使用可拖动的jQueryUI【英文标题】:UnabletousejQueryUIdraggableforiframe【发布时间】:2018-12-3017:37:22【问题描述】:我在主站点中有一个iframe(这是一个机器人图标)。我无法使用jqueryuidraggable()函数使iframe元素可拖动。... 查看详情

禁用以另一个闪亮输入为条件的闪亮输入

...shinyjs中查看了disable()函数,但是在我的情况下,它似乎无法禁用这种闪亮的输入。下面是我的例子:library 查看详情

Webdriver.io - 如何在配置中使用 beforeEach 钩子

】Webdriver.io-如何在配置中使用beforeEach钩子【英文标题】:Webdriver.io-howtousebeforeEachhooksintheconfig【发布时间】:2016-04-1711:34:36【问题描述】:我正在使用MEAN堆栈和Webdriver构建一个应用程序进行测试。目前我正在使用Mocha的beforeEach... 查看详情

browser.keys() 不适用于 Firefox 53.0 和 webdriver.io

】browser.keys()不适用于Firefox53.0和webdriver.io【英文标题】:browser.keys()isnotworkingonFirefox53.0&webdriver.io【发布时间】:2017-11-0411:05:42【问题描述】:在Firefox上,browser.keys抛出错误。操作系统:MacOs火狐版本:53.0.3壁虎司机:0.16.1Web... 查看详情

如何在 webdriver.io 中以 32 位模式启动 IE

】如何在webdriver.io中以32位模式启动IE【英文标题】:HowIcanstartIEin32bitmodeinwebdriver.io【发布时间】:2017-08-3107:42:05【问题描述】:我正在使用gulp-wdionpmpakage运行WebDriver.io测试在selenium-standalone我在gulp中运行的代码是:gulp.task(\'e2e\',... 查看详情

webdriver.io。用ctrl突出显示多个元素,然后单击咖啡符号(代码片段)

有必要使用Webdrivwr.io和mocha为СoffeScript编写测试。测试应通过按CTRL+单击来检查表中几个元素的选择。以下是我尝试执行的示例。但是,只有一个要素脱颖而出。请您告诉我正确的做法吗?it('test',()->$(selector1).click()browser.keys('Co... 查看详情

来自响应的数据是无法设置为 iframe 的符号

】来自响应的数据是无法设置为iframe的符号【英文标题】:Datafromresponseissymbolsunabletosettoiframe【发布时间】:2018-08-1102:37:22【问题描述】:我想检查Api的响应是否成功,然后将其放入iframe。如果我像这样调用它两次......它可以工... 查看详情

如何使用 webdriver.io 控制 Android 设备

】如何使用webdriver.io控制Android设备【英文标题】:HowtocontrolAndroiddevicewithwebdriver.io【发布时间】:2022-01-1501:47:38【问题描述】:我正在使用appium-uiautomator2-driver使用以下代码在Android设备上启动服务器conststartServer=require(\'appium-uiaut... 查看详情

当窗口在 Chrome 87 的后台时,Webdriver.io/Selenium 测试失败

】当窗口在Chrome87的后台时,Webdriver.io/Selenium测试失败【英文标题】:Webdriver.io/SeleniumtestsfailwhenthewindowisinthebackgroundonChrome87【发布时间】:2021-03-0304:15:58【问题描述】:我刚刚升级到最新版本的Chrome87。我的Webdriver.io/Selenium测试... 查看详情

从 webdriver.io 获取数据后动态构建 Mocha 测试

】从webdriver.io获取数据后动态构建Mocha测试【英文标题】:BuildMochatestdynamicallyaftergettingdatafromwebdriver.io【发布时间】:2016-03-0405:36:23【问题描述】:我正在寻找一种在异步获取数据后定义Mocha测试的解决方案。目前,我使用gulp-web... 查看详情

如何使用没有标识符的 WebDriver.io 在页面上查找元素

】如何使用没有标识符的WebDriver.io在页面上查找元素【英文标题】:HowtofindanelementonapagewithWebDriver.iothatdoesn\'thaveanidentifier【发布时间】:2021-04-1017:45:32【问题描述】:我想查找并对此元素进行测试:它有一堆类,但这些类也被其... 查看详情

如何使用 webdriver.io 模拟 ctrl-click 或 shift-click?

】如何使用webdriver.io模拟ctrl-click或shift-click?【英文标题】:Howtosimulatectrl-clickorshift-clickwithwebdriver.io?【发布时间】:2015-07-1615:28:30【问题描述】:对于webdriver.io,我想使用shift或ctrl等修饰符来模拟点击。keys()方法似乎做了类似... 查看详情

$('iframe').content(): 无法通过 CORS

】$(\\\'iframe\\\').content():无法通过CORS【英文标题】:$(\'iframe\').content():CannotgetCORSpassed$(\'iframe\').content():无法通过CORS【发布时间】:2014-09-1118:41:59【问题描述】:我在http://mysite.dev:3000上有一个iframe,此页面上的脚本会将iframesrc属... 查看详情