zoukankan      html  css  js  c++  java
  • [Selenium]当DOM结构里面有iFrame,iFrame里面是html,怎么send keys to 里面的body,怎么用Assert进行验证?

    我在测试的过程中遇到一个这样的问题,我无法通过CssSelector找到iFrame下边的html:

    <div id="mailEditorDiv" style="display: inline-block;">
    <div class="maileditor">
    <div style="height:130px;">
    <div class="divBody">
    <div class="ke-container ke-container-default" style=" 620px;">
    <div class="ke-toolbar" style="display:block;" unselectable="on">
    <div class="ke-edit" style="display: block; height: 286px;">
    <iframe class="ke-edit-iframe" frameborder="0" hidefocus="true" style=" 100%; height: 286px;">
    <html>
    <head>
    <body class="ke-content">rrrrrrrt</body>
    </html>
    

     后来我发现只能找到iFrame这里,再往后就找不到了。我用过sendKeys to可以将Text发送给body,但是想通过Assert去验证iFrame的text,无法做到。

     解决办法:

    先将driver切换到iFrame里面去,用来之后再切换回来,此问题就解决了。

    public void sendKeysToMailBodyEditBoxAndCheck(String mailBody){
    		WebElement el = page.getMailBodyEditBox();
    		el.sendKeys(mailBody);
    		driver.switchTo().frame(el);
    		Assert.assertEquals(driver.findElement(By.xpath("//html/body")).getText(), mailBody,"' "+mailBody+" ' should be displayed in mail body.");
    		driver.switchTo().defaultContent();
    	}
    

     在本地像上面那样调试通过之后,放到Jenkins上面通过Grid模式运行的时候却报错了,sendkeys没有生效。

     改成下面这样,将 switchTo 提前,sendKeys to //html/body才可以。

    public void sendKeysToMailBodyEditBoxAndCheck(String mailBody){
    		WebElement el = page.getMailBodyEditBox();
    		driver.switchTo().frame(el);
    		WebElement mailTextEl = driver.findElement(By.xpath("//html/body"));
    		mailTextEl.sendKeys(mailBody);
    		Assert.assertEquals(mailTextEl.getText(), mailBody,"""+mailBody+"" should be displayed in mail body.");
    		driver.switchTo().defaultContent();
    	}
    
  • 相关阅读:
    深度学习时代的图模型,清华发文综述图网络
    深入解析CNN pooling 池化层原理及其作用
    如何理解线性回归中的“回归”,回归到哪里?
    线性回归中“回归”的含义
    深度学习基础——Epoch、Iteration、Batchsize
    手动清空微信PC客户端数据
    Mini-batch 和batch的区别
    Python中绘制场景热力图
    HSV颜色识别-HSV基本颜色分量范围
    Android拨打接听电话自动免提
  • 原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/3791134.html
Copyright © 2011-2022 走看看