我们可以使用 Selenium webdriver 查找表单和 iframe 内部的元素。html 文档中的表单由
让我们看看一个带有电子邮件和密码字段的表单。
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class FormElements{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String url = "https://www.linkedin.com/"; driver.get(url); driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS); // identify elements driver.findElement(By.id("session_key")).sendKeys("[email protected]"); driver.findElement(By.id("session_password")).sendKeys("test!23"); // submitting form with submit() driver.findElement(By.id("session_password")).submit(); driver.quit() } }
iframe/frame 在 html 文档中使用 <iframe> 或 <frame> 标签标识。iframe 是嵌入在另一个 html 文档中的 html 文档。为了访问 iframe 内部的元素,我们需要将焦点从主页面切换到 iframe。
以下方法有助于在 iframe 之间切换 -
switchTo().frame(args) – 将 frame 索引作为参数传递给方法。iframe 的起始索引为 0。
语法 -
driver.switchTo().frame(0),切换到第一个 iframe。
switchTo().frame(args) - 将 frame 名称或 id 作为参数传递给方法。
driver.switchTo().frame("nm"),切换到名称为 nm 的 iframe。
switchTo.frame(args) - 将 frame web 元素作为参数传递给方法。
driver.switchTo().frame(f),切换到 web 元素为 f 的 iframe。
switchTo().defaultContent() – 从 iframe 切换焦点到父页面。
driver.switchTo().defaultContent()
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class iFrameElement{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String url = "https://the-internet.herokuapp.com/nested_frames"; driver.get(url); driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS); // switch to a iframe driver.switchTo().frame("frame-bottom"); // identify webelement WebElement m = driver.findElement(By.cssSelector("body")); System.out.println(" The text is: " +m.getText()); // shift to parent page driver.switchTo().defaultContent(); driver.close(); } }
2K+ 浏览量
通过完成课程获得认证