C# 如何查找添加的项目并在树状视图中单击该项目以编辑特定项目

C# 如何查找添加的项目并在树状视图中单击该项目以编辑特定项目,c#,visual-studio,selenium,C#,Visual Studio,Selenium,我想单击我以前在树状视图中添加的项目。我无法右键单击该项以获取元素,但我让它单击靠近树状视图的其他位置。这是我从Inspect element获得的结果: 这是我的代码: using Microsoft.VisualStudio.TestTools.UnitTesting; using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using Op

我想单击我以前在树状视图中添加的项目。我无法右键单击该项以获取元素,但我让它单击靠近树状视图的其他位置。这是我从Inspect element获得的结果:


这是我的代码:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;
using System;
using System.Collections.Generic;
using System.Text;

namespace CreateNewSubUnitOrganisationUnits
{
    [TestClass]
    public class CreateNewSubUnit
    {
        IWebDriver driver = new ChromeDriver(@"C:\\Users\\User\\source\\repos\\");

        [SetUp]
        public void Setup()
        {
            driver.Navigate().GoToUrl("https://Website/");
            driver.Manage().Window.Maximize();
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

        }

        [TestCase]
        public void Test1()
        {
            //Enter the Login details
            IWebElement UserName = driver.FindElement(By.Id("LoginInput_UserNameOrEmailAddress"));
            UserName.SendKeys("admin");
            IWebElement PassWord = driver.FindElement(By.Id("LoginInput_Password"));
            PassWord.SendKeys("1q2w3E*");
            IWebElement LoginButton2 = driver.FindElement(By.CssSelector("body > div.d-flex.align-items-center > div > div > div > div.card > div.card-body > div > form > button"));
            LoginButton2.Click();

            //Click on Administration
            IWebElement AdminiStration = driver.FindElement(By.XPath("//*[@id='mCSB_1_container']/nav/ul/li[3]/a/span[2]"));
            AdminiStration.Click();
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

            //Click on Identity Managment Link
            IWebElement IdManageLink = driver.FindElement(By.XPath("/html/body/header/div/div[2]/div[1]/div/nav/ul/li[3]/ul/li[2]/a/span[2]"));
            IdManageLink.Click();

            //Click on Organisation Unit
            IWebElement OrgUnit = driver.FindElement(By.XPath("/html/body/header/div/div[2]/div[1]/div/nav/ul/li[3]/ul/li[2]/ul/li[1]/a/span[2]"));
            OrgUnit.Click();


//This is where I want to search for the item added in the Tree-view:
            //Click on the Organisation Unit added
            Actions action2 = new Actions(driver);
            action2.MoveToElement(driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div[1]/div/div/div/div/div/div[1]/ul/li[1]/a/span"))).Build().Perform();
            IWebElement ClickOnOrganisation = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div[1]/div/div/div/div/div/div[1]/ul/li[1]/a/span"));
            ClickOnOrganisation.Click();
修改下面的代码

Actions action2 = new Actions(driver);
action2.MoveToElement(driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div[1]/div/div/div/div/div/div[1]/ul/li[1]/a/span"))).Build().Perform();
IWebElement ClickOnOrganisation = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div[1]/div/div/div/div/div/div[1]/ul/li[1]/a/span"));
ClickOnOrganisation.Click();

换句话说,通过
action2
执行
click()


此外,不建议使用绝对Xpath。

Hi,@Anneline,如果这是您问题的解决方案,请或:)
Actions action2 = new Actions(driver);
action2.MoveToElement(driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div[1]/div/div/div/div/div/div[1]/ul/li[1]/a/span"))).click().Build().Perform();