WebDriver-如何找到没有ID的iframe

Ami*_*nen 1 iframe selenium selenium-webdriver

我正在尝试切换到iframe以查找元素,但是由于iframe没有idname

<div id="eyein-modal" style="display: block; position: fixed; width: 100%; height: 100%; top: 0px; left: 0px; bottom: 0px; right: 0px; z-index: 90000000; background-color: rgba(0, 0, 0, 0.6); overflow: auto; opacity: 1;">
<iframe style="display: block; width:90%; height:90%; border: 0px; margin: 2.5% auto; z-index: 90000000; overflow: hidden;" scrolling="no" src="about:blank">
<html>
   <head>
   <body class="">
      <div id="modal">
      <div id="modal-header">
      <div id="header-logo">
      <div id="title-container" class="">
      <a id="view-event" class="button" target="_blank" href="http://www.link.com">view event</a>
      <div id="close-modal" class="close-dark"></div>
Run Code Online (Sandbox Code Playgroud)

close-modal 是我最终需要的元素

ale*_*cxe 5

除了提供框架名称或ID,您还可以按索引(从零开始)切换到框架:

通过其(从零开始)索引选择一个帧。即,如果一个页面具有三帧,则第一帧将在索引“ 0”处,第二帧将在索引“ 1”处,而第三帧将在索引“ 2”处。一旦选择了框架,WebDriver接口上的所有后续调用都将对该框架进行。

driver.switchTo().frame(0);  // assuming this is the first frame on the page
Run Code Online (Sandbox Code Playgroud)

或者,您可以WebElement通过定位来创建实例iframe,例如通过CSS选择器:

WebElement frame = driver.findElement(By.cssSelector("div#eyein-modal iframe"));
driver.switchTo().frame(frame);
Run Code Online (Sandbox Code Playgroud)

也可以看看: