我可以轻松检查对象是否可点击: -
WebDriverWait(driver, 10).until(ec.element_to_be_clickable((By.XPATH, '//*[@id="table-defaults-7"]/div/div/div/div/span/button[2]')))
有没有办法做相反的事情?我的情况是我有一个带有“保存并取消”按钮的页面。当我更改页面上的数据时,两个按钮都变为可点击,但是当我单击“保存”时,它们都变得不可点击,这是我需要检查的事件,以确保单击了保存按钮。
这可能吗?
干杯
答案 0 :(得分:2)
我假设您的save
按钮的属性可以是enabled
或disabled
。
假设在启用和禁用之间切换的属性名为status
。
import time
element = driver.find_element(By.XPATH, 'your xpath')
#after clicking the save button
buttonStatus = element.get_property('status') # should be "enabled"
timeout = 0
# loop till the status becomes disabled or a timeout
while buttonStatus != 'disabled' and timeout <= 5:
buttonStatus = element.get_property('status')
timeout += 1
time.sleep(1) # sleep for 1 second
请检查element.is_enabled()
方法并相应更改上述代码。
答案 1 :(得分:0)
尝试否定(not
方法)。
java 版本:
new WebDriverWait(driver, 10).until(not(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='table-defaults-7']/div/div/div/div/span/button[2]'"))));
链接到这里: