我尝试在网页上运行一些测试。我是一个初学者,直到现在一切都很顺利。
我正在更改网络表单中的某些值,现在要按"保存&出口"按钮。
但是当我使用webdriver(driver.getPageSource();
)查看可用来源时,我看不到按钮,只看到下面的JavaScript。我将脚本缩短为一个按钮 - 我想点击的一个按钮。
function getToolbarCfg() {
return [{ btnId: 2, icon:'images/obj16/tsave_.gif', text:'Save & Exit', qtip:'Save Record and Exit', handler:function() { cwc.getCenterWindow().tpzExecute('2',null,'detail'); } }];
感谢任何帮助。
答案 0 :(得分:2)
您可以让WebDriver明确等待元素出现。
public static IWebElement WaitForElementToAppear(IWebDriver driver, int waitTime, By waitingElement)
{
IWebElement wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitTime)).Until(ExpectedConditions.ElementExists(waitingElement));
return wait;
}
阅读Selenium's WebDriver Wait Documentation以获得有关显式和隐式等待的详细解释。
编辑:
你也可以这样做:
public static IWebElement WaitForElementToAppear(IWebDriver driver, int waitTime, By waitingElement)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitTime));
var element = wait.Until(d =>
{
var elem = driver.FindElement(waitingElement);
if (elem.Enabled)
return elem;
else return null;
});
return element;
}
这将每隔.5秒对元素执行ping操作,直到定义了waitTime,或者直到元素存在为止。
答案 1 :(得分:1)
找到解决方案:
按钮在单击时执行JavaScript。可以使用Selenium WebDriver直接调用该JavaScript函数。
((JavascriptExecutor) driver).executeScript("cwc.getCenterWindow().tpzExecute('3',null,'detail');");
希望这个答案可以帮助人们解决同样的问题。