C# 选择跨类元素

C# 选择跨类元素,c#,html,css,selenium,C#,Html,Css,Selenium,使用Selenium/C 我有一个自动测试用例,用户登录jonpark2,一旦用户登录,他们的用户名就会存储在一个span类的文本中,我需要选择这个元素,然后验证它的断言 我有以下选项可以尝试并选择此选项: public static void Userloggedin() { var userlogedin = Driver.Instance.FindElement(By.ClassName("username")); var selectelement = new Selec

使用Selenium/C

我有一个自动测试用例,用户登录jonpark2,一旦用户登录,他们的用户名就会存储在一个span类的文本中,我需要选择这个元素,然后验证它的断言

我有以下选项可以尝试并选择此选项:

public static void Userloggedin()
{
    var userlogedin = Driver.Instance.FindElement(By.ClassName("username"));
    var selectelement = new SelectElement(userlogedin);
    selectelement.SelectByText("JonPark2");
}
当我运行这个程序时,我遇到了错误OpenQa.Selenium.Support.UI.unexpectedTagNameException:Element应该是select,但是是div

下面的html更详细地显示了我试图选择的内容:

<div class="content-wrapper"> 
  <div class="float-left">
    <div class="float-right"> 
      <section id="login">
        <p>
           <a title="Manage your account" class="username" href="Account/Manage">
             Text - Empty Text Node
               <span class="username">
                 Text - JonPark2

有人能指出我哪里出错了吗?

您可以通过XPath选择该元素:

var spanElement=Driver.Instance.FindElementBy.XPath//span[contains@class,“用户名”]

然后看文本:


var textInSpan=span元素。Text

您试图选择的内容不是元素的一部分

试试这个:

public static void Userloggedin()
{
    return (
        "JonPark2" == Driver.Instance.FindElement(By.cssSelector("section#login span.username")).Text;
    )
}

尝试从父元素检测span…我尝试了此操作,但返回了一个错误,元素本应为select,但为span。我认为SelectElement是标记的类,而不是标记的类。你应该使用一些方法,比如GetAttribute。。。您应该使用getText方法:var userlogedin=Driver.Instance.FindElementBy.XPath//span[contains@class,“用户名”];var textInSpan=userlogedin.getText;我有GetAttribute,但没有getText,是否缺少名称空间?然后尝试userlogedin.Text;,或userlogedin.GetAttributeinnerHTML;在c语言中,文本是一个属性,而不是一个方法。我不使用C: