gpt4 book ai didi

c# - selenium webdriver中frame没有id和title时如何识别并切换到frame

转载 作者:行者123 更新时间:2023-11-30 22:01:50 39 4
gpt4 key购买 nike

谁能告诉我如何识别并切换到没有标题和 ID 的 iframe。我需要进入这个框架,以便在此框架中找到另一个元素来发送一些文本。

<div class="sceditor-container" style="width: 1359px; height: 300px;">
<div class="sceditor-toolbar">
<iframe frameborder="0" src="javascript:false" style="width: 1349px; height: 261px;">
<!DOCTYPE html>
<html style="height:100%">
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<link href="" type="text/css" rel="stylesheet">
</head>
<body contenteditable="true" style="height:88%">
<div> </div>
</body>
</html>
</iframe>

为此我写了代码:

WebDriver.SwitchTo().Frame(WebDriver.FindElement(By.TagName("iframe")));
WebDriver.FindElement(By.XPath("html/body")).SendKeys("text");
WebDriver.SwitchTo().DefaultContent();

但是 WebDriver 找不到 iframe 元素,因此无法将文本值发送到 iframe 元素。

最佳答案

点击和发送按键使用下面的代码

WebElement loc=driver.findElement(By.XPath("html/body"));
Actions a= new Actions(driver);
a.click(loc).sendKeys("emailBody").perform();

要在 iframe 元素中设置文本,您必须首先从 Body 标记复制文本

WebElement emailBody = driver.findElement(by.xpath("/html/body"));
emailBody.getText();

将文本复制到 emailBody 后,您可以将其与框架内的元素一起使用,如下所示

WebDriver.FindElement(By.XPath("html/body")).SendKeys(emailBody);

试试下面的代码切换到框架,看看会发生什么

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,'javascript:false')]")));

您也可以尝试使用其索引访问框架,尝试

driver.switchTo().frame(0);

关于c# - selenium webdriver中frame没有id和title时如何识别并切换到frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27398803/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com