【问题标题】:Blazor and WebdriverBlazor 和 Webdriver
【发布时间】:2019-11-25 16:14:39
【问题描述】:

是否可以使用 Selenium 测试 Blazor UI?

我在计数器页面中添加了一个 id,并在测试中尝试通过其 id 查找元素。 我错过了什么? 结果始终为空,Title 和 PageSource 也为空。导航有效,它会打开正确的网址。

该项目是一个 Blazor 项目,3.0,带有 MS 核心测试项目,并且一些片段已经在 RCL 中。

Dependencies of MS Test Project

[TestInitialize]
        public void MyTestInitializeT()
        {
            _driver = new ChromeDriver();
        }

   [TestMethod]
        public void FindElementInCounterTest()
        {
            _driver.Navigate()
                .GoToUrl("https://localhost:5001/counter");

            WaitXseconds();

            var res = _driver.FindElement(By.Id("counter100"));
            //.SendKeys("");

            //Assert.AreEqual("Options", _driver.Title);
        }

【问题讨论】:

  • 该 ID 在页面中可见吗?
  • 问:“有可能吗?” 答:可以。你有一个名为counter100的ID吗?你的 Razor 视图是什么样的?当您调用FindElement 时,您是否遇到特定异常?
  • 知道了。我增加了等待时间,它知道找到元素。

标签: c# selenium unit-testing blazor


【解决方案1】:

观点:

<title>This is a title.</title>
<h1 id="counter100" class="counter100">Counter</h1>

测试在页面加载之前运行。我现在得到一些反馈。 顺便说一句,可以找到标题,但无法检查其值,因为它在此模板中不可见。 Ty4the 帮助。

//Test:
[TestMethod]
        public void FindElementInCounterTest()
        {
            _driver.Navigate()
                .GoToUrl("https://localhost:5001/counter");

            WaitXseconds(10000); // wait 10 secs

            var res = _driver.FindElement(By.Id("counter100"));
            var res2 = _driver.FindElement(By.TagName("h1"));
            var res3 = _driver.FindElement(By.TagName("title"));
            Assert.AreEqual(true, res.Displayed);
            Assert.AreEqual("Counter", res.Text);
            Assert.AreEqual(true, res2.Displayed);
            Assert.AreEqual("Counter", res2.Text);
            Assert.AreEqual(false, res3.Displayed);
            Assert.AreEqual("", res3.Text);//Assert.AreEqual("This is a title.", res3.Text);

            //.SendKeys("");

            Assert.AreEqual(false, string.IsNullOrEmpty(_driver.Title));
            Assert.AreEqual(false, string.IsNullOrEmpty(_driver.PageSource));
        }

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2020-11-18
    相关资源
    最近更新 更多