加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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;
  }

或类似的规定

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读