40

Pythonを使用してSelenium WebDriverでチェックボックスがチェックされているかどうかを確認する方法を1週間検索してきましたが、JAVAのアルゴリズムしか見つかりません。WebDriver のドキュメントを読んだことがありますが、その答えはありません。
誰にも解決策がありますか?

4

6 に答える 6

87

と呼ばれるWebElementプロパティがありis_selected()、チェックボックスの場合、これはチェックされているかどうかを示します。したがって、次のようにすることで、チェックされているかチェックされていないかを確認できます。

driver.find_element_by_name('<check_box_name>').is_selected()

また

driver.find_element_by_id('<check_box_id>').is_selected()

同じ問題でドキュメントが見つからないことを覚えています。名前がわかれば簡単に見つけることができます(ここにいくつかのドキュメントがありますis_selectedが、下にあります)が、Seleniumオブジェクトのさまざまなオプション/プロパティを見つけようとした方法はdir(some_object)、コードをドロップして、どのオプションが来るかを確認することです。アップ(これがどのように表示されたかis_selected)。

于 2013-01-21T16:25:03.223 に答える
6

私は使用していますdriver.find_element_by_name("< check_box_name >").is_selected()

于 2013-08-06T09:14:03.663 に答える
4

動作する別の方法を見つけましたが、内部で JavaScript を使用しています。

def is_checked(self, driver, item_id):
  checked = driver.execute_script(
    f"return document.getElementById('{item_id}').checked"
  )
  return checked
于 2013-01-21T16:54:51.340 に答える
-3
def assert_checkbox_status (id, expect):
    global browser
    field = browser.find_element_by_id(id)
    assert field.get_attribute ('checked')== expect

使用例:

assert_checkbox('activate', True) ==> assert if checkbox is checked
assert_checkbox('activate', None) ==> assert if checkbox is unchecked
于 2013-04-25T14:44:39.170 に答える