前提・実現したいこと
Seleniumを使用してGoogle Chromeを操作するプログラムを作成しています。
プログラムの内容は用意してある複数のURLを指定しそのページに移動し、ボタンを押すというものです。
処理を順番にしていく際に画面に表示されたボタンがクリックできない場合があります。
その時だけ別の処理を行いプログラムを続行したいのですが、現状ではボタンのクリック毎にTry, Exceptの行を追加しないといけません。
対象のボタンがすべて同じ場合はループさせれば済むのですが、printf()で文章を表示してみたり異なるボタンを押したいためその手段が取れません。エラーの内容はページ毎に同じものなので、プログラムの行数を短くするために便利な書き方などありましたら教えていただけると嬉しいです。
Python
1 2# ボタンA,Bを押す、クリックできない場合は別のボタン(btn_Error)を押す 3Try: 4 driver.get(url_1) 5 btn = driver.find_element_by_class_name("btn_A").click() 6 btn = driver.find_element_by_class_name("btn_B").click() 7 print("ボタンを押しました") 8 9Except selenium.common.exceptions.ElementClickInterceptedException: 10 btn = driver.find_element_by_class_name("btn_Error").click() 11 12 13# ボタン(btn_A)を押す、クリックできない場合は別のボタン(btn_Error)を押す 14Try: 15 driver.get(url_2) 16 btn = driver.find_element_by_class_name("btn_A").click() 17 18Except selenium.common.exceptions.ElementClickInterceptedException: 19 btn = driver.find_element_by_class_name("btn_Error").click() 20 21 22# ボタンC,A,Bを押す、クリックできない場合は別のボタン(btn_Error)を押す 23Try: 24 driver.get(url_2) 25 btn = driver.find_element_by_class_name("btn_C").click() 26 btn = driver.find_element_by_class_name("btn_A").click() 27 btn = driver.find_element_by_class_name("btn_B").click() 28 printf("ボタン") 29 30Except selenium.common.exceptions.ElementClickInterceptedException: 31 btn = driver.find_element_by_class_name("btn_Error").click() 32 33・ 34・ 35・ 36・ 37
回答1件
あなたの回答
tips
プレビュー