我一直在搜索如何使用 Python 检查是否在 Selenium WebDriver 中选中了一个复选框,但我只找到来自 JAVA 的算法。我已阅读 WebDriver 文档,但对此没有答案。
有人有解决方案吗?
问问题
60447 次
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 回答
2
agreed = driver.find_element_by_id("checkBoxAgreed")
if agreed.get_attribute("checked") != "true":
agreed.click()
于 2020-04-03T23:27:07.497 回答
0
WebElement checkbox = driver.findElement(By.id("checkboxId"))
(或者)
checkbox = self.driver.find_element_by_css_selector(checkboxSelector)
, 然后
if checkbox.isSelected():
print 'Checkbox is selected'
于 2021-06-03T10:35:32.877 回答
-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 回答