Selenium WebDriver and JavaScript change

Selenium WebDriver and JavaScript change

本文关键字:change JavaScript and WebDriver Selenium      更新时间:2023-09-26

我到底是如何获得这个Javascript方法的

$('#principal_uid').change(function() {
if($(this).val().length > 0){
 window.location.href = "/switch.html" + "?uid=" + $(this).val();
  } else {
  window.location.href = "/index.html";

要使用SeleniumWebDdriver测试,我在哪里尝试更改字段的值?问题是该字段有一个默认值,但Selenium clear()-方法并没有清除它,尽管测试正在通过。

我试过

 WebElement field =driver.findElement(By.id("principal_uid"));
 JavascriptExecutor js = (JavascriptExecutor) driver;
 js.executeScript("$('#principal_uid').change");
 field.clear();

field.sendKeys("newValue"+Keys.RETURN); //CHRASHED THE TEST WITH ERROR COMMUNICATING REMOTE SERVER ERROR

试试这样的东西:

js.executeScript("$('#principal_uid').val('%s')".format("newValue"));

这将触发"onchange"事件,并将您重定向到代码中描述的页面。

如果事件没有被触发(尽管它应该被触发),你可以添加:

js.executeScript("$('#principal_uid').trigger('change')")