我正在与Selenium Standalone Server 3.0.1
。我正在尝试向Explicit Wait
代码中添加,以在元素变为可见时通过xpath检测元素。为了获得一些Java帮助,我寻找了源代码, Selenium Standalone Server 3.0.1
但找不到它。我在selenium-java-2.53.1
发行版中找到了源代码。我下载并找到selenium- java-2.53.1-srcs
并添加到我的Eclipse IDE
。在的帮助下FluentWait
,我只需将代码复制粘贴到我的代码中,Eclipse IDE
然后更改变量名。
文档中的示例代码如下:
// Waiting 30 seconds for an element to be present on the page, checking
// for its presence once every 5 seconds.
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, SECONDS)
.pollingEvery(5, SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("foo"));
}
});
但是,当我实现此代码时,只需复制粘贴即可:
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement element = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.xpath("//p[text()='WebDriver']"));
}
});
我在FluentWait
Class 上遇到错误The type FluentWait is not generic; it cannot be parameterized with arguments <WebDriver>
这是我的进口清单:
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Wait;
import com.google.common.base.Function;
有人可以帮我吗?
增加了一个回答关于的修改构造 FluentWait 在 seleniumV3.11.0
您需要在等待中指定期望的条件,以下是修改后的代码,可以解决您的问题。
码:
import java.util.concurrent.TimeUnit;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.FluentWait;
import org.openqa.selenium.support.ui.Wait;
public class DummyClass
{
WebDriver driver;
@Test
public void test()
{
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
until(new Function<WebElement, Boolean>()
{
public Boolean apply(WebElement element)
{
return element.getText().endsWith("04");
}
private void until(Function<WebElement, Boolean> function)
{
driver.findElement(By.linkText("Sample Post2"));
}
}
}
}
问题内容: 我对Eclipse Galileo有一个奇怪的问题。 我将Java 1.6设置为我的JRE。在这行代码上 我在Eclipse的问题列表中看到以下错误: Collection类型不是通用的;不能使用参数对其进行参数化 我用Ant构建这个项目没有任何问题。 我该如何解决?看起来这是Eclipse问题,但是由于这个错误,我无法从IDE编译/发布项目。 问题答案: 对于那些从Google那里可
问题内容: import java.awt.List; import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.InputStreamReader; import java
问题内容: 我正在尝试编写一个使用堆栈的简单程序,这给了我错误 堆栈类型不是通用的。不能使用参数对其进行参数化 问题答案: 你的课快要开始了。您可以重命名您的班级,也可以使用完全限定的班级名称,例如
所以我有那个代码,我是通过上传到Imgur v3使用Javahttps错误得到的,我在第50行得到一个错误,因为“列表”告诉我 类型列表不是泛型的;它不能用参数参数化 我能做些什么来解决这个问题? 我正在使用http://hc.apache.org/httpclient-3.x/并希望使用v3 API将图像上传到imgur。 编辑:更改导入后,我现在收到这些错误。 这就解决了这个问题,但又给了我两
我尝试使用数据表并实现我的函数从这个Cucumber数据表中获取值,我使用List 公共无效my函数(DataTable dt)抛出可抛出{ 列表 driver.findElement(By.id(“name”)).sendKeys(list.get(0).get(0)) driver.findElement(按.id(“年龄”)).sendKeys(list.get(0.get(1)) driv