无法在硒中获取ifame中的元素

时间:2017-08-31 06:13:36

标签: selenium iframe

我能够获得第2帧但无法获得该帧内的<p>标记尝试使用xpath投掷无法找到元素

我的代码:

driver.switchTo().frame("firstframe");
driver.switchTo().frame(driver.findElelemt(By.cssSelector());
driver.findElement(By.xpath("html/body/p")).sendKey("test");

HTML:

<iframe id="firstframe">
  <table>
    <tr>
      <td>
        <div id="frdive">
          <div id="sndiv">
            <iframe class="test" title="test">
              <html style="overflow-y: hidden;">
                <head></head>
                <body>
                  <p></p>
                </body>
              </html >
            </iframe>
          </div>
        </div>
      </td>
    </tr>
  </table>
</iframe>

3 个答案:

答案 0 :(得分:0)

进入第一帧后,尝试使用以下xpath进行切换。

"//iframe[@title='test']"

希望这会有所帮助。感谢。

答案 1 :(得分:0)

试试这个:

driver.switchTo().frame("firstframe");
driver.switchTo().frame(driver.findElement(By.xpath(".//iframe[@title='test']"));
driver.findElement(By.xpath("html/body/p"));

您可以按ID,按名称或按WebElement更改为框架。

答案 2 :(得分:0)

尝试使用webdriver等,如下所示。它可能适合你。

driver.switchTo().frame("firstframe");

WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath(".//iframe[@title='test']"));

driver.findElement(By.xpath("html/body/p")).sendKey("test");