Selenium C#:查找带有额外“/”的 URL 文本元素

问题描述 投票:0回答:1

Selenium C# 新手,并一路自学。当我能够验证连接到 URL 的一段文本时,我已经运行了代码和测试。我已经工作的例子: 代码

IWebElement events = driver.FindElement(By.CssSelector("[href='/events']"))
        Assert.That(events.Text, Is.EqualTo("Events"));

HTML

但是,我尝试在另一个下拉菜单中访问以下文本,该菜单在每个 URL 末尾都有额外的“/”,并断言其文本为 true:

我得到以下信息,字符串为空。 错误

  Message: 
  Expected string length 22 but was 0. Strings differ at index 0.
  Expected: "Português (Brasileiro)"
  But was:  <string.Empty>
  -----------^

代码

 IWebElement portuguêse = driver.FindElement(By.CssSelector("[href='/pt-br/']"));
      Assert.That(portuguêse.Text, Is.EqualTo("Português (Brasileiro)"));

HTML

我已经确定可以选择的代码之间的唯一区别是 /pt-br/ 中 URL 末尾的额外“/”,而不是 URL /events 中。

如果有人可以指导我为没有跨度类的文本选择元素的正确方法,那就太好了!

谢谢!

科斯蒂

c# selenium-webdriver url text assert
1个回答
0
投票

请尝试这个:

IWebElement events = driver.FindElement(By.CssSelector("a.dropdown-item"))
    Assert.That(events.Text, Is.EqualTo("Events"));

请将 CssSelector 值更改为 a.dropdown-item

© www.soinside.com 2019 - 2024. All rights reserved.