久々のSelenium ネタです。
詰まったこととか、うまくいったこととかを備忘的に書いていたりするわけですが、本当に自分のための備忘メモになっております。
「以前もここで詰まったよなー」と思いながらググったら、自サイトのページがヒットしたときの衝撃と言ったらないですよね。 「記事書いたことも忘れてるやん。」という…。
引き続き、Python のSelenium で色々と遊んでおりますが、得たものは積み上げていきたいところ。
今回詰まったのは、よくある折りたたみ機能の中の何かを選択して作業を進めるヤツ。クリックして開いてから何かの作業を進めるという流れをプログラムしたい。 そんなニーズです。
この折りたたみリストの2番めをクリックして・・・
びろーんと広げる。
で、最初は普通にSelenium 上でもクリックさせていたのですね。 そしてその後につなげる、と。
element = wait. until ( EC. visibility_of_element_located (( By. ID , 'ogpSetting' )))
element = wait. until ( EC. visibility_of_element_located (( By. ID , 'eycatch-text' )))
element = wait.until(EC.visibility_of_element_located((By.ID, 'ogpSetting')))
element.click()
element = wait.until(EC.visibility_of_element_located((By.ID, 'eycatch-text')))
element = wait.until(EC.visibility_of_element_located((By.ID, 'ogpSetting')))
element.click()
element = wait.until(EC.visibility_of_element_located((By.ID, 'eycatch-text')))
特に問題なく動きます。 クリックして、中のリストが出てきて、そしてそこで何かをする、と。
ですが、これを連続して行おうとしたときに問題発生。 プログラムを走らせていた当該のサイトは賢いので、前の状態を記憶しているんですね。
つまり、プログラムが2巡目に入ると、新規ページでは、最初からそのリストは開いたままなのです。 するとどうなるか…。
はい。プログラムは律儀にクリックするので、開いているものを閉じて次の作業に向かいます。 で、待てど暮せど望みのリストが見えませんよ、といってエラーになる、と。
そこで、まずプログラム上で分岐を作ろうとしました。 開いているならそのままで進む、閉じているならクリックして開けてから進む、という具合に。 でも、しばらくしてふと思ったのです。 これって、「開けておく」の指示をするだけで良いのでは?
というわけで書いたのがこちら。
driver. execute_script ( "document.getElementById('ogpSetting').style.display = 'block';" )
element = wait. until ( EC. visibility_of_element_located (( By. ID , 'eycatch-text' )))
driver.execute_script("document.getElementById('ogpSetting').style.display = 'block';")
element = wait.until(EC.visibility_of_element_located((By.ID, 'eycatch-text')))
driver.execute_script("document.getElementById('ogpSetting').style.display = 'block';")
element = wait.until(EC.visibility_of_element_located((By.ID, 'eycatch-text')))
今現在、開いていようと閉じていようと「display:block 」にしてください、という指示になります。
Selenium本
Selenium実践入門 自動化による継続的なブラウザテスト (WEB+DB press plusシリーズ) [ 伊藤望 ]
3,630円(税込)【送料込】
楽天ブックス
自動化による継続的なブラウザテスト WEB+DB press plusシリーズ 伊藤望 戸田広 技術評論社セレニウム ジッセン ニュウモン イトウ,ノゾミ トダ,ヒロシ 発行年月:2016年02月02
【中古】 Selenium実践入門 自動化による継続的なブラウザテスト WEB+DB PRESS plusシリーズ/伊藤望(著者),戸田広(著者),沖田邦夫(著者),宮田淳平(著者),長谷川淳(著者)
847円(税込)【送料別】
ブックオフ 楽天市場店
伊藤望(著者),戸田広(著者),沖田邦夫(著者),宮田淳平(著者),長谷川淳(著者)販売会社/発売会社:技術評論社発売年月日:2016/01/01JAN:9784774178943
Seleniumデザインパターン & ベストプラクティス [ DimaKovalenko ]
3,300円(税込)【送料込】
楽天ブックス
DimaKovalenko 太田健一郎 オライリー・ジャパン オーム社セレニウム デザインパターン アンド ベストプラクティス ディマコヴァレンコ オオタケンイチロウ 発行年月:2015年09月25日
実践Selenium WebDriver [ サタヤ・アバサララ ]
3,300円(税込)【送料込】
楽天ブックス
サタヤ・アバサララ 玉川竜司 オライリー・ジャパン オーム社ジッセン セレニウム ウェブドライバー アバサララ,サタヤ タマガワ,リュウジ 発行年月:2014年09月 ページ数:240p サイズ:単行
Job Interview Questions & Answers of Selenium Automation QA Our technique to success【電子書籍】[ chirag g
506円(税込)【送料込】
楽天Kobo電子書籍ストア
<p>If you read this book, you will definitely be successful in your QA automation interview.</p> <p>