Knockout.js 敲除JS-Selenium webdriver中未处理超链接

Knockout.js 敲除JS-Selenium webdriver中未处理超链接,knockout.js,selenium-webdriver,knockout-mvc,Knockout.js,Selenium Webdriver,Knockout Mvc,无法使用Selenium wbedriver单击超链接,因为他们(开发人员)在MVC中使用了Knockout JS,因此请给出如何在Automation中处理这些类型的JS的步骤 比如说 <a href="#" data-bind="click: $root.lnkAdd">New Grade</a> 在测试期间,我想单击该超链接(新成绩) 所以请帮我解决这个问题 问候 prabu使用Knockout不会改变您在页面上定位元素的方式。在一天结束时,它仍然只是普通的h

无法使用Selenium wbedriver单击超链接,因为他们(开发人员)在MVC中使用了Knockout JS,因此请给出如何在Automation中处理这些类型的JS的步骤

比如说

<a href="#" data-bind="click: $root.lnkAdd">New Grade</a>

在测试期间,我想单击该超链接(新成绩)

所以请帮我解决这个问题

问候
prabu

使用Knockout不会改变您在页面上定位元素的方式。在一天结束时,它仍然只是普通的html。 我的selenium体验有点过时,但我过去总是使用xpath以元素为目标


例如:
sel。单击(“//a[text()='newgrade']”)

使用敲除不会改变您在页面上定位元素的方式。在一天结束时,它仍然只是普通的html。 我的selenium体验有点过时,但我过去总是使用xpath以元素为目标

例如:
sel。单击(“//a[text()='New Grade']”)

3种方法

正常方式

WebElement link=browser.findElement(By.xpath("//a[text()='New Grade']"));
link.click();
//click once again
link.click();
键盘方式,输入键

link.sendKeys(Keys.ENTER);
通过这种方式,移动到该链接,然后单击或发送回车键

Actions moveTo = new Actions(driver);
moveTo.moveToElement(link).click().build().perform();
有三种方法可以做到这一点

正常方式

WebElement link=browser.findElement(By.xpath("//a[text()='New Grade']"));
link.click();
//click once again
link.click();
键盘方式,输入键

link.sendKeys(Keys.ENTER);
通过这种方式,移动到该链接,然后单击或发送回车键

Actions moveTo = new Actions(driver);
moveTo.moveToElement(link).click().build().perform();

“未处理”是什么意思?您的自动化代码是什么样子的?您是否正在等待页面加载和数据绑定完成后再尝试单击?您所说的“未处理”是什么意思?您的自动化代码是什么样子的?你是否在等待页面加载和数据绑定完成后再尝试单击?5年后救了我一命。你是怎么知道需要点击两次敲除元素的?@DavidHyogo很抱歉反应太晚了。据我记忆所及,第一次点击更像是对链接的“关注”,第二次点击则是“真正的行动”。5年后,这救了我的命。你是怎么知道需要点击两次敲除元素的?@DavidHyogo很抱歉反应太晚了。就我所记得的,第一次点击更像是对链接的“关注”,第二次点击则是“真正的行动”。