usr_element.sendKeys("oreore"); pwd_element.sendKeys("password"); try{ form_element.submit(); // ここで例外 }catch(org.openqa.selenium.JavascriptException e){ logger.log(Level.WARNING, "失敗したが続ける", e); } String title = driver.getTitle(); // ログイン後の画面に遷移して、タイトル取得に成功する
で、以下の例外が起こる(ただし何故かsubmitの効果はあってちゃんとログインは出来て次の画面に遷移する)。
org.openqa.selenium.JavascriptException: TypeError: form.submit is not a function Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' System info: host: 'hogehoge', ip: '127.0.0.1', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_131' Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities [{moz:profile=C:\Users\oreore\AppData\Local\Temp\rust_mozprofile.bpO0rmnWE9ko, rotatable=false, timeouts={implicit=0.0, pageLoad=300000.0, script=30000.0}, pageLoadStrategy=normal, platform=ANY, specificationLevel=0.0, moz:accessibilityChecks=false, acceptInsecureCerts=false, browserVersion=53.0.3, platformVersion=10.0, moz:processID=7144.0, browserName=firefox, javascriptEnabled=true, platformName=windows_nt}] Session ID: aaaaaaaa at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:150) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:115) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:45) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637) at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:272) at org.openqa.selenium.remote.RemoteWebElement.submit(RemoteWebElement.java:86) at seleniumtest.main.Main.exec(Main.java:45) at seleniumtest.main.Main.main(Main.java:17)
検索したら
https://stackoverflow.com/questions/32534202/uncaught-typeerror-document-getelementbyid-submit-is-not-a-function
どうも、formタグの子に、idかnameが"submit"という名前の要素があると起こるらしい。
まぁ今回はログイン自体は出来たので良いけど。