Использование Selenium в Node.js и chrome приводит к сбою по ссылке __doPostBack
Это работает на IEDriver, но не на драйвере chrome, я пробовал разные веб-драйверы chrome и добавил console.log, чтобы убедиться, что это были ссылки __doPostBack, на которых он зависал. И на некоторых это работает только когда я использую sendkeys, но не для щелчка. Любая помощь приветствуется.
Она действительно нажимает на ссылку, но страница никогда не загружается, она просто вращается, а затем Chrome сообщает, что сайт не может быть достигнут. ERR_UNEXPECTED.
HTML-код для ссылки:
<li><a id="DriverUpdateAdd" href="javascript:__doPostBack('DriverUpdateAdd','')">Add</a></li>
Селен:
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until,
Keys = webdriver.Key,
capabilities = webdriver.Capabilities.chrome();
try {
var driver = new webdriver.Builder()
.forBrowser('chrome')
.withCapabilities(capabilities)
.build();
function element(id){
var element = By.id(id);
driver.wait(until.elementLocated(element));
var foundElement = driver.findElement(element);
return foundElement;
}
function readyLinkClick(id){
var readyLink = driver.wait(until.elementLocated(By.id(id)), 20000)
.then(function(readyLink){
driver.wait(until.elementIsVisible(element(id)), 20000).click();
});
}
function readyLinkKeyPress(id){
var readyLink = driver.wait(until.elementLocated(By.id(id)), 20000)
.then(function(readyLink){
driver.wait(until.elementIsVisible(element(id)), 20000).sendKeys(Keys.ENTER);
});
}
function clickLink(id){
var postback = element(id).getAttribute("href")
.then(function(postback){
if( postback.includes("javascript:") ){
console.log(postback+" _doPostBack");
readyLinkKeyPress(id);
} else {
console.log(postback+" Ok Link");
readyLinkClick(id);
}
});
}
driver.get('http://devsite');
clickLink("foundMenu");
clickLink("driverMenu");
clickLink("DriverUpdateAdd"); //driver add