我想测试一下这个文本框是只读的(无法输入/编辑)。注意:文本框中的值每次都不同。
HTML代码:
Homestead.yaml
我尝试使用以下代码找到文本框:
<input type="text" class="form-control" id="system_lan1_mac" value="00:15:8b:00:5f:8e" disabled="">
这不起作用 - 我知道is_enabled()不应该在这个上下文中使用。查找文本框时出现超时错误。如果我将ID更改为常规文本框的ID,则测试可以找到它。只要我将其更改为只读ID,就会出现超时错误。
由于
编辑: find_by_id代码:
def test_a(self):
ip = self.find_by_id('system_lan2_mac')
self.assertFalse(ip.is_enabled())
WebDriverWait定义:
def find_by_id(self, setting): element = self.wait.until(EC.element_to_be_clickable((By.ID, setting))) return element
答案 0 :(得分:3)
问题出在您预期的状态:您等待被禁用的输入字段变为可点击...在任何情况下都不会True
。您应该尝试定义self.find_by_id()
,如下所示:
def find_by_id(self, setting):
element = self.wait.until(EC.presence_of_element_located((By.ID, setting)))
return element
答案 1 :(得分:0)
您可以尝试编写使用 sendkeys()的测试,并检查文本框的值属性是否未更改。
答案 2 :(得分:0)
您应该检查disabled
属性,它是一个布尔属性。如果它出现,则应禁用<input>
字段。
正如@Andersson所说,assert element.get_attribute('disabled')
将是一种在python中检查它的方法。