c# – Selenium 2 WebDriver – Chrome – 从通过JavaScript设置
发布时间:2020-12-16 01:38:15 所属栏目:百科 来源:网络整理
导读:我正在使用Selenium 2(来自Googlecode的最新版本),我让它启动Chrome并转到网址. 当页面加载了一些javascript执行以设置文本框的值. 我告诉它通过id找到一个文本框,但它没有其中的值(如果我硬编码它找到它的值). 查看PageSource,例如Console.WriteLine(driver
我正在使用Selenium 2(来自Googlecode的最新版本),我让它启动Chrome并转到网址.
当页面加载了一些javascript执行以设置文本框的值. 我告诉它通过id找到一个文本框,但它没有其中的值(如果我硬编码它找到它的值). 查看PageSource,例如Console.WriteLine(driver.PageSource);显示html和文本框为空. 我尝试过使用: driver.FindElement(By.Id(“txtBoxId”)获取元素,但也没有获取值. 我也试过ChromeWebElement cwe = new ChromeWebElement(driver,“txtBoxId”); (抱怨Stale数据). 有什么想法吗? 约翰 解决方法
Selenium 2没有为DOM中的元素内置的等待函数.这与Selenium 1中的相同.
如果你必须等待某事,你可以这样做 public string TextInABox(By by) { string valueInBox = string.Empty; for (int second = 0;; second++) { if (second >= 60) Assert.Fail("timeout"); try { valueInBox = driver.FindElement(by).value; if (string.IsNullOrEmpty(valueInBox) break; } catch (WebDriverException) {} Thread.Sleep(1000); } return valueInBox; } 或类似的规定 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |