我正在测试一个带有iFrame的页面,其内容是由JavaScript动态生成的.我必须等待完全加载iFrame以确保所有元素都存在.我尝试了下面的代码,它没有用.
WebDriver frame = wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("frmMain"));
Run Code Online (Sandbox Code Playgroud)
我还试图等待iFrame中的某些元素出现.它没有用,也没用.
任何帮助将不胜感激,谢谢!
它的方便,以等待WebElement在场与WebDriverWait和ExpectedConditions.
问题是,如果找到元素的唯一可行方法是什么WebElement.findElment,因为它没有id,没有名字,没有唯一的类?
WebDriverWait的构造函数只接受WebDriver参数而不是WebElement.
我已经设定了implicitlyWait时间,因此使用它似乎不是一个好主意try{} catch(NoSuchElementException e){},因为我不想等待这个元素的那么长时间.
这是场景:
有一个网页,其中包含许多input标签的表单.每个input标签都有格式要求.
当不满足格式要求时,div此input标记之后将出现动态标记.
由于input标签太多,我创建了一个通用方法,如:
public WebElement txtBox(String name) {
return driver.findElement(By.name(name));
}
Run Code Online (Sandbox Code Playgroud)
而不是为每个input标签创建数据成员.
然后我创建一个方法isValid来检查某些用户输入是否input有效.我应该做的isValid就是检查div标签后是否存在inputboxToCheck,代码如下:
public boolean isValid(WebElement inputboxToCheck) {
WebElementWait wait = new WebElementWait(inputboxToCheck, 1);
try {
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("./following-sibling::div")));
return false;
} …Run Code Online (Sandbox Code Playgroud) 我有两个具有相同配置的节点(Win7,ie9).我将testNG设置为同时对每个节点执行两次测试.Selenium Grid同时打开两个浏览器(每个节点一个),但测试似乎只在一个浏览器中执行 - 用户名在同一个浏览器中输入两次.如果我设置thread-count=1,两个测试都会成功.
testNG测试套件xml文件:
<suite name="ExampleTest" parallel="tests" thread-count="2">
<test name="ExampleTest1">
<classes>
<class name="com.mycompany.testsuites.GridTest">
<methods>
<include name="test1"></include>
</methods>
</class>
</classes>
</test>
<test name="ExampleTest2">
<classes>
<class name="com.mycompany.testsuites.GridTest">
<methods>
<include name="test2"></include>
</methods>
</class>
</classes>
</test>
Run Code Online (Sandbox Code Playgroud)
测试类GridTest:
public class GridTest {
private WebDriver driver;
String hubUrl = "http://12.11.14.15:4444/wd/hub";
@BeforeClass
public void beforeClass() throws MalformedURLException {
DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
driver = new RemoteWebDriver(new URL(hubUrl), capability);
Page.setUp(driver); //Page is the base class of all page objects.
//The static setUp method assign a …Run Code Online (Sandbox Code Playgroud) 我们在src/main/java文件夹中有很多beans.xml和struts.xml文件.当完成后,我无法找到这些文件,WEB-INF/classes目录文件夹中.mvn package
将xml文件放在src/main/java中是不对的?我应该把它们放在src/main/resources中吗?或者我应该修改pom.xml?