单击带有JQuery的按钮

时间:2018-03-14 10:29:27

标签: java jquery selenium selenium-webdriver

我想测试的页面有问题。

我的第一次尝试: 当我手动点击按钮时,我将在下一页正常转发。 当我试图用selenium点击相同的按钮时,我得到一个错误页面“抱歉......出了问题... blabla”。我认为这个问题只能解决页面的开发团队。

By book = By.cssSelector("#button\\.buchung\\.continue");
//By book = By.cssSelector("button.buchung.continue");
//By book = By.xpath("//*[@id='button.buchung.continue']");
WebElement element= ConfigClass.driver.findElement(book);
element.click();

但我想尝试一种解决方法:

我点击了与JQuery相同的按钮。 我打开了我的chrome控制台并执行了以下按钮:

jQuery('#button\\.buchung\\.continue').click()

如何在我的selenium代码中执行此JQuery表达式?

我试过了,但没有成功:

JavascriptExecutor je = (JavascriptExecutor) driver;
je.executeScript("jQuery('#button\\.buchung\\.continue').click()");

3 个答案:

答案 0 :(得分:0)

使用$

je.executeScript("$('#button\\.buchung\\.continue').click()");

答案 1 :(得分:0)

jQuery(" selector")会返回一个列表。 我认为你必须在索引0处的元素上调用click()(假设只有一个元素满足选择器)

代码:

je.executeScript("jQuery('#button\\.buchung\\.continue')[0].click()"); 

答案 2 :(得分:0)

你非常接近。如果 cssSelector 唯一标识 WebElement ,则可以使用以下代码块:

function toUTCTimeValue(s) {
  var b = s.split(/\D/);
  return Date.UTC(b[0],b[1]-1,b[2],b[3],b[4]);
}

// As time value
console.log(toUTCTimeValue('2018-03-10 12:12'));

// Convert to Date object and print as timestamp
console.log(new Date(toUTCTimeValue('2018-03-10 12:12')).toISOString());