当前位置: 首页 > 面试题库 >

使用Java和Selenium WebDriver在表单和iframe中查找元素

全昊焜
2023-03-14
问题内容

我正在尝试访问中存在的元素<form> <iFrame> <form> elements </form> </iFrame> </form>

你能帮助我访问这些与Selenium Webdriver和JAVA一起使用的“元素”吗?

遇到问题:可以到达目标页面(存在上述元素),但是我的代码无法识别这些元素。

XML结构概述:

<body>
    <form action="https://abcd/efgh/" name="outerForm" method="post" target="iFrameTitle">
        <iframe width="700" height="600" src="" title="Frame for Java Test" name="iFrameTitle" scrolling="auto" frameborder="0">
            <form id="innerFormID" name="innerForm" action="/xxx/xxxx/yyyy/zzzz/" method="post" autocomplete="off">
                <fieldset id="ncDetailsInner">
                    <div id="element1">
                        <label for="label1">
                        <abbr title="Required field">*</abbr></label>
                        <input name="label2" type="text" maxlength="30" id="cardHolder" value="" >
                    </div>

                    <div id="element2">
                        <label for="label3">Label3 <abbr title="Required field">*</abbr></label>
                        <div id="element3">
                            <label for="label4">Label4<abbr title="Required field">*</abbr></label>
                            <input id="label5" name="labelname5" type="text" maxlength="19" value="">
                        </div>

                        <div id="element4">
                            <label for="label6">Label6</label>
                            <input id="label7" name="labelname7" type="text" size="2" maxlength="2" value="" class="text disabled" disabled="">
                        </div>
                    </div>
                </fieldset>
            </form> 

        </iframe>
    </form>
</body>

代码提取:

WebDriverWait wait_iframe = new WebDriverWait(driver, 20000);

wait_iframe.until(ExpectedConditions.visibilityOfElementLocated((By.id("element2"))));

calling_function(sh1.getCell(col + 10, row).getContents(), 
                sh1.getCell(col + 11, row).getContents(),
                sh1.getCell(col + 12, row).getContents(), 
                sh1.getCell(col + 14, row).getContents());                      

public static void called_funciton(String string1, String string2,
        String string3, String string4) {
        driver.findElement(By.name("Element1 Name")).sendKeys(string1);
        driver.findElement(By.id("Element2 ID")).sendKeys(string2);
        driver.findElement(By.id("Element3 ID")).sendKeys(string3);
        driver.findElement(By.id("Element4 ID")).sendKeys(string4);
        driver.findElement(By.name("submitButton")).click();
    }

如果需要更多详细信息,请告诉我!


问题答案:

在尝试在iframe中搜索元素之前,你必须将Selenium焦点切换到iframe。

在iframe中搜索元素之前,请尝试以下操作:

driver.switchTo().frame(driver.findElement(By.name("iFrameTitle")));


 类似资料:
  • 我尝试了xpath和检查,如下所示

  • 我一直在忙着自动化这个选项页面,因为它提供了各种选项,每个选项都有自己的子选项,所以我不想花时间通过它们的xpath(或CSS)标识和声明所有元素。因此,我有一个可靠的代码,可以很好地找到HTML标记中的文本标识符。 通过运行这个,我得到一个打印输出,就像 > 里程数 等等。所以嘣!我知道它们已经被识别,但我的e.click()实际上并没有点击。当我开始测试时,我没有得到任何错误,它只是说它通过了

  • 我正在尝试播放以下网站的视频(使用JUnit)-Day01。http://www.itelearn.com/live-training/security-testing-live-training我试图实现的是,在播放视频后,我将拍摄一张屏幕截图,以证明视频播放正确。点击Day01视频后,它会在一个新窗口中打开——当我查看代码时,我意识到他们使用了iFrame。我可以关闭此视频窗口,但无法播放/暂

  • null 问题: 如何在Linux中将MCC、MNC、LAC、Cell ID转换为经纬度值? 为什么每次尝试读取时单元格ID都不同?

  • 我有一个以字典格式存储的元素列表 例如。 如有任何帮助,不胜感激,谢谢!

  • 问题内容: 我必须搜索一个列表,然后用一个元素替换所有出现的元素。到目前为止,我在代码方面的尝试使我无处可寻,做到这一点的最佳方法是什么? 例如,假设我的列表具有以下整数 我需要将所有出现的数字1替换为值10,所以我需要的输出是 因此,我的目标是将数字1的所有实例替换为数字10。 问题答案: