使用CSS / JS可以更改用户看到鼠标指针的光标。例如,您可以设置cursor: wait
以将光标更改为微调器。
我想做的是进行Selenium测试,等待光标变为/ wait
。但是,我找不到任何预期的条件" (EC)方法,用于观察光标的CSS值。
有没有办法等待光标更改(仅仅是睡眠并定期检查其值)?
答案 0 :(得分:2)
理论上,我相信你可以等到element.GetCssValue("cursor") == "wait"
。你可以提供一个测试它的演示页面,这将是很棒的。
为常见wait.Until
用法创建了预期条件(EC),而等待光标似乎很少见。
C#中的示例代码:
// depends on which element you want to wait, here take <body> as an example
var wait = new WebDriverWait(driver, TimeSpan.FromMilliseconds(5000));
wait.Until(d => d.FindElement(By.TagName("body")).GetCssValue("cursor") == "wait");
答案 1 :(得分:0)
class CursorChangesFromWaiting():
"""Helper class for waiting until the cursor changes back to normal)"""
def __init__(self, browser):
self.browser = browser
def __call__(self, ignored):
"""This will be called every 500ms by Selenium until it returns true (or we time out)"""
cursor = self.browser.find_element_by_tag_name("body").value_of_css_property("cursor")
return cursor != "wait"
然后我在测试中能够做到以下几点:
WebDriverWait(browser, 20).until(CursorChangesFromWaiting(browser))