我一直在竭力争取网络司机点击一个 but子或可靠地连接起来,但我不想合作。 我尝试了不同的方法,从确定暗中的时间,到以下的法典,即可以点击和等待要素的出现。
在互联网上发现了以下几处密码,我最接近的是可靠地带上了 but子或连接点击。 除此以外,在我的夜间退步测试期间处决时,它的工作方式并不相同。
是否有任何人知道在浏览器中点子或连接另一个方法? 或者,我应该使用Selenium 1,而不是网络驱动器,因为它太新,无法可靠地加以利用。
public void waitAndClick(WebDriver driver, By by) {
WebDriverWait wait = new WebDriverWait(driver, 10000, 2000);
Function<WebDriver, Boolean> waitForElement = new waitForElement(by);
wait.until(waitForElement);
Actions builder = new Actions(driver);
builder.click(driver.findElement(by))
.perform();
}
private class waitForElement implements Function<WebDriver, Boolean> {
private final By by;
private String text = null;
public waitForElement(By by) {
this.by = by;
}
public waitForElement(By by, String text) {
this.by = by;
this.text = text;
}
@Override
public Boolean apply(WebDriver from) {
if (this.text != null) {
for (WebElement e : from.findElements(this.by)) {
if (e.getText().equals(this.text)) {
return Boolean.TRUE;
}
}
return Boolean.FALSE;
} else {
try {
driver.switchTo().defaultContent().switchTo().frame("top");
from.findElement(this.by);
} catch (Exception e) {
logger.error("Unable to find "" + this.by.toString() + "". Retrying....");
return Boolean.FALSE;
}
logger.info("Found "" + this.by.toString() + "".");
return Boolean.TRUE;
}
}
}
Eclipse De:
16:07:08,109 INFO WebDriverUtility: apply Found "By.linkText: Classes".
16:07:10,514 INFO WebDriverUtility: apply Found "By.linkText: Reports".
16:07:17,028 ERROR WebDriverUtility: apply Unable to find "By.linkText: Users". Retrying....
16:07:26,369 INFO WebDriverUtility: apply Found "By.linkText: Users".
16:07:38,272 ERROR WebDriverUtility: apply Unable to find "By.linkText: System". Retrying....
16:07:41,334 INFO WebDriverUtility: apply Found "By.linkText: System".
16:07:47,722 ERROR WebDriverUtility: apply Unable to find "By.linkText: Schools". Retrying....
16:07:50,565 INFO WebDriverUtility: apply Found "By.linkText: Schools".
从Eclipse开出的青少年:
16:14:04,179 INFO WebDriverUtility: apply Found "By.linkText: Classes".
16:14:04,726 INFO WebDriverUtility: apply Found "By.linkText: Reports".
16:14:09,771 INFO PageAPITesting: login org.openqa.selenium.NoSuchElementException: Unable to find element with link text == Reports (WARNING: The server did not provide any stacktrace information)
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: 2.0rc3 , revision: 12536 , time: 2011-06-20 18:19:52
System info: os.name: Windows XP , os.arch: x86 , os.version: 5.1 , java.version: 1.6.0_24
Driver info: driver.version: RemoteWebDriver
16:14:09,865 INFO PageAPITesting: login current tabs is Classes
16:14:09,958 INFO WebDriverUtility: apply Found "By.linkText: Schools".
16:14:10,240 INFO PageAPITesting: login java.lang.IllegalStateException: Unable to navigate to the ca.schoolspecialty.qa.api.pages.schools.MenuSchoolPage page