如何选择使用硒代码为Firefox的Ajax下拉建议列表项目?使用Selenium for Firefox选择Ajax下拉建议列表
我的问题是:Ajax下拉列表是可见的,但它没有被选中,接下来的步骤卡住了。 可能是硒正在等待什么。
页面填充的列表是动态的,并且位于bla bla标记中。 请帮助一个示例代码。 我如何在这里使用waitfor *。 记得我没有使用Firefox,但我正在编写代码。 请帮忙。
如何选择使用硒代码为Firefox的Ajax下拉建议列表项目?使用Selenium for Firefox选择Ajax下拉建议列表
我的问题是:Ajax下拉列表是可见的,但它没有被选中,接下来的步骤卡住了。 可能是硒正在等待什么。
页面填充的列表是动态的,并且位于bla bla标记中。 请帮助一个示例代码。 我如何在这里使用waitfor *。 记得我没有使用Firefox,但我正在编写代码。 请帮忙。
我在与你的问题有点困惑“:Ajax的下拉列表中可见,但它没有选择”
这听起来像该元素将被禁用。 (Java编码)
若然selenium.isElementDisabled()
如果不是的话,
1)使用编程laguage溶液中,同时循环并isElementPresent()
OR isElementDisabled()
//trigger the Ajax request and then
long initialTime = System.currentTimeMillis();
do{
thread.sleep(1000);
}while((!selenium.isElementPresent("AjaxElement")) && (System.getCurrentTimeMillis() - initialTime <= 5000)) ;
//一些事像上文针对客户端编程解决方案...但是,
2)硒的内置解决方案
我们有一个方法叫waitForCondition("java script to be executed", "time out value");
这种方法循环的JavaScript语句,直到它返回true或出现供应超时
这里最重要的是分析应用/阿贾克斯元素找出的这些特定条件元素更改。
从explation我的猜测是这样的,display=none
将改为display=block
OR disabled=true
将改为disabled=false
OR isReadOnly
将改为没有这样的属性ECT .....(你需要弄清楚这一点)
,然后用这个attribute = value
建立一个javascript功能,
selenium.waitForCondition("window.document.getElementById('AJAX ELEMENT').disabled == 'false'", "3000");
你可以工作,但上述声明你想在你的编程语言。
try {
//do the action which triggers the Ajax call
selenium.waitForCondition("window.document.getElementById('AJAX ELEMENT[drop down element]').disabled == 'false'", "3000");
//OR
selenium.waitForCondition("window.document.getElementById('AJAX ELEMENT').disabled == 'false'", "3000");
}
catch(SeleniumException se)
{
if((se.getMessage()).toLowerCase().contains("timed out")
throw //..some a custom exception however your organisation requires
}
selenium.select("drop down element id", "option id");
等等.....