

python2.7.10とseleniumとchrome driverです。

pythonでseleniumを使って、xpathを用いてfind_elementする際、そのxpathの要素が存在するかどうかで処理を分けたいのですが、どう記述すべきでしょうか。

[code]

    driver.find_element(By.XPATH, '//*[@id="rank"]/tbody/tr[2]/td[1]').text
    
[/code]

if文で分岐したいのですが、if文内でそんな要素ない！ってエラー吐かれてしまい・・・。

ご存知の方がいれば、教えて下さい。


CC BY-SA 3.0
2016-12-04T15:58:59.517
30895
2016-12-05T14:21:14.797
2016-12-05T05:35:52.830
76
19817
question
python selenium
XPathで要素の存在を確認する方法


find_elementsを使います。返り値の型はリストで、対応する要素が無ければ空のリストになるだけです。


CC BY-SA 3.0
2016-12-04T23:37:40.800
30901
2016-12-04T23:37:40.800
13695
30895
answer


Pythonでは例外処理を`try`と`except`で行います。  
条件式や関数と同様に「:」とインデントを使って記述します。

[code]

    try:
        # 要素がある場合の処理
        driver.find_element(By.XPATH, '//*[@id="rank"]/tbody/tr[2]/td[1]').text
    except:
        # 要素がない場合の処理（※正確にはtryの内容を実行してエラーが起こる場合の処理）
        ここに記述
    
[/code]


CC BY-SA 3.0
2016-12-05T14:21:14.797
30931
2016-12-05T14:21:14.797
19724
30895
answer