0

このJavascriptメソッドを取得する方法

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

Selenium WebDdriver テストで作業するには、フィールドの値を変更しようとしていますか? 問題は、フィールドにデフォルト値があることですが、テストはパスしていますが、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
4

1 に答える 1

0

次のようなものを試してください。

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

これにより、「onchange」イベントがトリガーされ、コードで説明されているようにページにリダイレクトされます。

イベントがトリガーされない場合(トリガーされるはずですが)、次を追加できます。

js.executeScript("$('#principal_uid').trigger('change')")
于 2012-09-14T13:59:51.993 に答える