こんにちは 現在、サイトのログイン情報を入力してフォームを送信し、次のページから情報を収集できるようにするスクリプトを取得しようとしています。これまでのところ、フォームに入力することはできましたが、送信することはできません。ボタンの .click と submit() を試しましたが、どちらも機能しません。そこで、JavaScript を使用してボタンを有効にしました。残念ながら、これにより以下のエラーが発生します。エラーをオーバーライドしようとしましたが、間違っている可能性があります。フォームを送信する方法を知っている人はいますか?
これは、コードを停止させると私が信じているエラーです
WARNING: Obsolete content type encountered: 'application/x-javascript'.
Exception in thread "main" org.openqa.selenium.WebDriverException: com.gargoylesoftware.
htmlunit.ScriptException: ReferenceError: "console" is not
defined. (https://extbasicph05.podc.sl.edst.ibm.com/FFAMobileRelay/js/ion.sound.min.js#2)
これは私のコードです
public class Main {
public class MyHtmlUnitDriver extends HtmlUnitDriver {
@Override
protected WebClient modifyWebClient(WebClient client) {
//currently does nothing, but may be changed in future versions
WebClient modifiedClient = super.modifyWebClient(client);
modifiedClient.getOptions().setThrowExceptionOnScriptError(false);
return modifiedClient;
}
}
public static void main(String[] args) {
WebDriver driver = new HtmlUnitDriver(true);
driver.get("url");
WebElement usr = driver.findElement(By.id("username"));
WebElement psd = driver.findElement(By.id("password"));
WebElement btt = driver.findElement(By.id("btnLogin"));
usr.sendKeys("username");
psd.sendKeys("password");
String eventScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('"
+ "click"
+ "', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('"
+ "onclick"+ "');}";
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(eventScript, btt);
System.out.println("Page title is: " + driver.getTitle());
}
}