- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我搜索了很多论坛主题来解决我的问题,但没有发现任何类似的问题。我正在使用 Java 使用 Selenium WebDriver 编写测试。
我正在测试的网站使用 iframe,用户的所有可见内容都将加载到其中。它看起来像这样:
<html>
<head>
(...)
</head>
<body>
<iframe id="portalIframe">
<html>
<body>
<h2 id="aui_3_2_0_1594">Etat des agents</h2>
...
</body>
</html>
</iframe>
</body>
</html>
我的问题如下:在 iframe 中查找元素并不总是有效。当我想要定位这样的元素时,我首先运行一个方法来切换到 iframe :
protected void switchIframe() {
WebDriverWait wait = new WebDriverWait(driver, 10);
By by = By.id("portalIframe");
try {
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(by));
} catch (TimeoutException e) {
e.printStackTrace();
}
}
然后我可以找到一个 h2 元素:
driver.findElement(By.xpath("//h2[contains(text(),'Some text')]"));
我无法理解的是,有时 Selenium 无法在网页上找到元素。例如,我刚刚设法找到 h2 元素,然后单击菜单链接加载另一个页面,但是当我尝试在新页面上再次查找 < h2 > 元素时,我收到“未找到元素错误”,如果我尝试在此之前添加 switchIframe(),selenium 说它找不到 iframe。
这似乎是“随机”发生的,所以我真的不知道该如何解决这个问题。ChromeDriver 和 FirefoxDriver 上的问题相同。我不使用其他驱动程序,因为这个私有(private)网站将仅使用 Firefox 和 Chrome。
编辑很抱歉我无法粘贴 html 内容,因为这是一个内联网网站,我无法在这里分享。我尝试定位的 h2 元素的示例 < h2 id="aui_3_2_0_1594">代理国家
而且我的问题与这个问题非常相似: Selenium WebDriver not able to find elements which are not present in the Page Source but present in HTML when seen through Developer Tools该问题不仅出现在 h2 元素上,而且还出现在我想单击的“a”元素上。
谢谢
最佳答案
看来我在寻找 html 元素时没有等待足够的时间。我只是增加了显式等待方法的超时时间。我不是在谈论 switchIframe()
,而是指另一种用于等待元素出现的方法:
因此,我将超时时间从 3 秒增加到 6 秒,现在看起来效果很好。
protected WebElement waitForElementVisible(By by) {
WebDriverWait wait = new WebDriverWait(driver,6);
WebElement element = null;
try {
element = wait.until(ExpectedConditions.visibilityOfElementLocated(by));
} catch (TimeoutException e) {
//method logging an error
error("Timeout : element " + by.toString() + " is not visible");
}
return element;
}
关于java - Selenium WebDriver 即使切换到 iframe 也无法找到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24329728/
我想在 Watir webdriver 中使用 selenium webdriver Actions。这可能吗? 也可以在 watir webdriver 中使用 java 代码。请帮忙。 我浏览了很
我正在使用 watir-webdriver 浏览我的网站并在不同的浏览器中抓取屏幕截图。 有时在 IE 中截取的屏幕截图大小合适,但颜色完全是黑色。同时运行的 Firefox 测试看起来很好。 bro
我已经编写了 driver.findElement(By.id("kfiDocumentLink")).click(); 用于单击“KFI 文档”按钮的代码。 请找到HTML代码。 Download
我有一个包含以下内容的 html 页面: This is Login page. Please click below link
我想获得页面加载异常,但仍然没有结果。 我使用implicitlyWait 设置计时器以抛出异常。 WebDriver driver = new FirefoxDriver(); driver.man
我正在使用具有 IE 特定应用程序的 Selenium Webdriver。我知道我们可以截取执行的截图。同样,是否有任何选项可以将 selenium 执行记录为视频? 最佳答案 WebDriver
Selenium WebDriver 如何克服同源策略? Selenium RC 中存在同源策略问题 最佳答案 First of all “Same Origin Policy” is introdu
我将如何从输入文件中提取文本?我尝试使用 XPath/CSSSelector 但我得到一个空文本,因为它是一个输入字段。 这是我的 html 代码: 结果:195 行中的 1 到 50
如何使用 WebDriver 自动验证码? 是否有其他方法可以使用 Webdriver 自动执行验证码? 最佳答案 您只能使用“alt”属性中的显示验证码值来自动化验证码。 在 WebElement
最近我开始学习 WebDriver,因为我工作的客户计划使用 WebDriver 来自动化 Web 应用程序。 我怀疑 WebDriver 如何在网页上定位其 ID 动态变化的元素(比如每次登录应用程
我发现 watir-webdriver 在一个非常大的页面上通过正则表达式定位元素非常慢,至少在 FF 8.0.1 中对我来说是这样。航类搜索结果页面示例(包含大约 50 个搜索结果,每个都是 htm
我有一个动态更改其文本的字段。我需要一种方法来等待文本被更改。我不知道会出现什么文本,但我知道当前那里有什么文本。所以我想等待它在元素中消失。有办法吗? 最佳答案 你可以试试ExpectedCondi
自从我使用 Firefox 升级到 3.0 beta 后,我就有了这个异常(exception)。 Exception in thread "main" java.lang.IllegalStateE
任何人都可以帮助我使用 Selenium webdriver 截取整页屏幕截图。我正在使用 c#/Nunit。我正在使用的当前方法不是完整的浏览器页面。 我正在使用下面的代码截取屏幕截图。 publi
我通过 WebDriver (Chrome) 从网页下载图像 // STEP 1 $driver->get($link); // STEP 2 $els=$driver->findElements(W
Selenium WebDriver 的默认隐式等待值是什么? selenium 文档说它是“0”,但是当我在一个全新的项目上调用 .findElement 时,DOM 上不存在元素,它似乎在一段时间
我正在使用 Webdriver 测试 Web 应用程序,大致如下所述。当测试通过时,一切都很好。但是,当其中一个测试失败时,我注意到以下 2 个问题。 a) 如果一个测试失败,则套件中的其余测试将超时
我正在使用 Selenium WebDriver 并遇到问题。 在 UI 中,WebDriver 可以看到元素,但无法执行任何操作,例如单击、键入、选择等。元素由 selenium 找到并作为 web
我在 Java 中使用 Web 驱动程序处理 UntrustedSSLcertificates 时陷入困境。 我创建了 Firefox 配置文件,如: FirefoxProfile profile =
选择的编程语言是 Java。我已经用 Java 编写了一个方法,我将 WebDriver 作为参数传递给它... public boolean myMethod(WebDriver webDriver
我是一名优秀的程序员,十分优秀!