我试图检查该字段是否存在,如果存在,我需要确保它是只读字段。在
这是我尝试过的方法,但我认为这不是一种非常有效的方法:
if self.driver.find_element_by_xpath("//input[@id='cname']"):
self.driver.find_element_by_xpath("//input[@id='cname' and @readonly='readonly']")
elif self.driver.find_element_by_xpath("//input[@id='address']"):
self.driver.find_element_by_xpath("//input[@id='address' and @readonly='readonly']")
elif self.driver.find_element_by_xpath("//input[@id='address2']"):
self.driver.find_element_by_xpath("//input[@id='address2' and @readonly='readonly']")
elif self.driver.find_element_by_xpath("//input[@id='city']"):
self.driver.find_element_by_xpath("//input[@id='city' and @readonly='readonly']")
# country
elif self.driver.find_element_by_xpath("//input[@id='country']"):
self.driver.find_element_by_xpath("//input[@id='country']/../select[@disabled='disabled']")
我也尝试过使用此方法,但问题是,如果字段不为只读,则它不会抛出错误:
^{pr2}$
您可以使用
element.is_enabled()
来判断元素是否为只读。如果它是只读的,is_enabled()
将返回false
。见the docs。在当我编写我将重用的代码时,我编写了一个函数。在本例中,我将编写一个接受定位器参数的函数,如果元素存在并且
is_enabled()
是false
,则返回true
。然后为每个元素调用这个函数并断言每个返回值是true
。This answer如果需要帮助将定位器作为参数传递,应该可以开始使用。在相关问题 更多 >
编程相关推荐