执行以下js时收到以下错误。请告知。
超文本标记语言:
<div id="iframeContainer">
<iframe class="selectedModulesIframe" frameborder="0" src="XXXXXX/?locale=en&security={"language":"en","token":"LYu1sFnCa6UHRTEs1Xsa3bs7","agentId":{"id":"SSHAIK"},"organisation":"RAIL-NSWT","distributedContextID":null,"securityModeCode":null}&module=SCHEDULECHANGELIST" id="SCHEDULE1552627852125" name="SCHEDULE1552627852125" style="height: 519px; width: 1903px;">
</iframe>
</div>
<span id="w10" atdelegate="d6" class="xWidget" style="width:85px;margin:0px 0px 0px 10px;">
<a class="xLink_std" href="javascript:(function(){})()" tabindex="1"">192429</a>
</span>
这是我的代码:
browser.switchTo().frame(browser.driver.findElement(protractor.By.tagName('iframe'))).then(function(){
console.log('Iframe switch')
browser.driver.findElement(protractor.By.linkText("192429")).click().then(function(){
console.log('action performed')
})
})
另请尝试以下代码:
browser.switchTo().frame(browser.driver.findElement(protractor.By.tagName('iframe'))).then(function(){
console.log('Iframe switch')
element(by.linkText('192429')).click();
})
错误响应:
[16:49:46]我/启动器-运行1个WebDriver实例[16:49:46]我/主机-在http://localhost:4444/wd/hub使用selenium服务器开始得到了iframe Iframe开关[31mF[0m故障:1)受影响的乘客通知验证时间表更改UI消息中的APR:[31m失败:没有这样的元素:无法定位元素:{"method":"link text","selector":"192429"}(会话信息:chrome=72.0.3626.121)(驱动程序信息:chromeriver=2.46.628402(536cd7adbad73a3783fdc2Cab92ab2ba7ec361e1),平台=Windows NT 10.0.15063x86_64)[0m堆栈:NoSuchElementError:没有这样的元素:无法定位元素:{"method":"link text","selector":"192429"}(会话信息:chrome=72.0.3626.121)(驱动程序信息:chromeriver=2.446(C:\用户\s shaik\eclipse-工作空间\Protractor_Orion\量角器\node_modules\selenium-网络驱动\lib\error. js:546:15)
超文本标记语言:
//It works with the below code.
const iframeLocator = browser.driver.findElement(by.css('iframe.selectedModulesIframe'));
browser.switchTo().frame(iframeLocator).then(function(){
var EC4 = protractor.ExpectedConditions;
browser.wait(EC4.visibilityOf(element(by.linkText('192429'))),70000).then(function(){
console.log('Got the iframe Id');
})
browser.driver.findElement(protractor.By.linkText('192429')).click().then(function(){
})
试试下面这个
const iframeLocator = browser.driver.findElement(by.css('iframe.selectedModulesIframe'));
goToIFrame: function () {
browser.switchTo().frame(iframeLocator );
},
goToDefault: function () {
browser.driver.switchTo().defaultContent();
}
希望对你有帮助