宜しくお願い致します
iPhoneでWebサイトのデバッグを行いたく、iPhone側Safariでリモートオートメーションを有効化しました
以下コードを実行すると最初の1回目は問題なく動作します。
しかし2回目実行するとErrorでSafariが一度落ち、
かつその後Safariの画面が立ち上がった状態で必ずフリーズします。
※ iPhone側はホーム画面に遷移できなくなる。ただしSafariは動く。
WebDriverが正しく終了しなかったのか?と思い、
finallyでquitを追加しましたが、改善しませんでした。
対処法をご存知の方がいらっしゃいましたらご教示いただけないでしょうか。
宜しくお願い致します
Typescript
1import { Builder } from "selenium-webdriver"; 2 3(async () => { 4 /** run webdriver */ 5 const driver = await new Builder().forBrowser("safari", undefined, "ios").build(); 6 /** browse */ 7 try { 8 await driver.get("https://google.co.jp"); 9 } finally { 10 await driver.quit(); 11 } 12})(); 13
Error
1(node:1491) UnhandledPromiseRejectionWarning: SessionNotCreatedError: Could not create a session: The session timed out while connecting to a Safari instance. 2 at Object.throwDecodedError (/Users/****/dev/ios-rpa/node_modules/selenium-webdriver/lib/error.js:550:15) 3 at parseHttpResponse (/Users/****/dev/ios-rpa/node_modules/selenium-webdriver/lib/http.js:563:13) 4 at Executor.execute (/Users/****/dev/ios-rpa/node_modules/selenium-webdriver/lib/http.js:489:26) 5 at processTicksAndRejections (internal/process/task_queues.js:93:5) 6(node:1491) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) 7(node:1491) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2020/01/03
頂いた内容よりコード修正(catch節追加)
TypeScript
1import { Builder, WebDriver } from "selenium-webdriver"; 2 3(async () => { 4 /** iosのsafariを指定してWebDriverを起動 */ 5 const driver: WebDriver = await new Builder().forBrowser("safari", "604.1", "ios").build(); 6 7 try { 8 9 /** ブラウザの操作を開始する */ 10 console.log("start"); 11 await driver.get("https://google.co.jp"); 12 await driver.sleep(3000); 13 /** 終了時処理 */ 14 console.log("正常終了。Driverを終了します"); 15 await driver.quit(); 16 17 } catch (e) { 18 /** Error時処理 */ 19 console.log("Errorを検知。Driverを終了します"); 20 await driver.quit(); 21 } 22})();
Error
1(node:2227) UnhandledPromiseRejectionWarning: SessionNotCreatedError: Could not create a session: The Safari instance terminated while trying to pair with it. 2 at Object.throwDecodedError (/Users/yuichiro/dev/ios-rpa/node_modules/selenium-webdriver/lib/error.js:550:15) 3 at parseHttpResponse (/Users/yuichiro/dev/ios-rpa/node_modules/selenium-webdriver/lib/http.js:563:13) 4 at Executor.execute (/Users/yuichiro/dev/ios-rpa/node_modules/selenium-webdriver/lib/http.js:489:26) 5 at processTicksAndRejections (internal/process/task_queues.js:93:5) 6(node:2227) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) 7(node:2227) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 8yuichiro@you-2 ios-rpa % npx ts-node ./src/main.ts 9start 10正常終了。Driverを終了します
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/03 01:45
2020/01/03 09:35
2020/01/04 02:19
2020/01/04 08:58
2020/01/05 03:45