And*_*dén 6 javascript selenium
在我的seleniumtest中,我将元素滚动到视图中,然后按IJavaScriptExecutor.ExecuteScript
如下方式单击它们
var js = (IJavaScriptExecutor) browser;
var script = "$(\"" + selector.Replace('\"', '\'') +
(!string.IsNullOrEmpty(text) ? ":contains('" + text + "')" : "") +
"\").get(0).scrollIntoView(false)";
js.ExecuteScript(script);
Run Code Online (Sandbox Code Playgroud)
然后我点击一个按钮
var remoteWebDriver = (RemoteWebDriver) browser;
var elements = remoteWebDriver.FindElementsByCssSelector(selector);
/* pick the element with the correct text */
IWebElement element = text != ""
? elements.Where(element => element.Text.Contains(text)).Single()
: elements.Single();
var actions = new Actions(browser);
actions.MoveToElement(element).Perform();
actions.Click().Perform();
Run Code Online (Sandbox Code Playgroud)
但是,在滚动到视图和单击之间似乎存在一个时间窗口。通常,人们通过使用来解决此问题Thread.Sleep(500)
。
我想避免随机睡觉,所以我想找到一种确保滚动发生的方法。
怎么样?
归档时间: |
|
查看次数: |
793 次 |
最近记录: |