C # Селен не может найти скрытый элемент, написанный на Javascript - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь использовать Xpath или что-то еще, чтобы найти элемент <span _ngcontent-c19=""> ACME Nursing </span>

Я пробовал много разных способов перемещения элемента с помощью действий и многих других, но я просто могу 'чтобы зависание и щелчок произошли.Я пробовал и ждет.Я получаю следующую ошибку, независимо от того, что я пытаюсь:

Ниже приведен код, содержащий скрытый элемент, который я пытаюсь найти:

<acme-role-facility _ngcontent-c2="" class="ng-tns-c2-1" _nghost-c20="">
  <li _ngcontent-c20="" class="header-item show dropdown" ngbdropdown=""><a _ngcontent-c20="" aria-haspopup="true" class="dropdown-toggle dropdown-toggle" href="javascript:void(0)" id="roleFacilityDropdown" ngbdropdowntoggle="" aria-expanded="true"><span _ngcontent-c20="" class="block m-t-xs" id="roleFacilityName"><span _ngcontent-c20="">ACME Nursing - </span></span><span _ngcontent-c20="" class="block"><span _ngcontent-c20="">Nursing Admissions</span><b _ngcontent-c20="" class="caret"></b></span></a>
    <aht-navigation
      _ngcontent-c20="" aria-labelledby="roleFacilityDropdown" ngbdropdownmenu="" _nghost-c19="" class="dropdown-menu show" x-placement="bottom-left" style="top: 52px; left: 0px;">
      <perfect-scrollbar _ngcontent-c19="" class="nav-facility-container">
        <div style="position: static;" class="ps">
          <div class="ps-content">
            <!---->
            <div _ngcontent-c19="" class="animated fadeInDown light ng-star-inserted" style="">
              <!---->
              <ul _ngcontent-c19="" class="nav navbar-nav ng-star-inserted">
                <!---->
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="active parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19=""> ACME Nursing </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19=""> Dees Nursing &amp; Rehabilitation Center </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19=""> Rehab and Healthcare </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19=""> Nursing and Rehab Center </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19=""> Nursing and Rehab Center </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19=""> Care Nursing &amp; Rehabilitation Ctr </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19="">  Nursing and Rehab Center </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
                <li _ngcontent-c19="" class="ng-star-inserted">
                  <!---->
                  <!---->
                  <!----><a _ngcontent-c19="" href="javascript:void(0)" class="parent-menu dropdown-item ng-star-inserted"><span _ngcontent-c19=""> Management Firm  </span><i _ngcontent-c19="" class="chevronMargin fa fa-chevron-right"></i></a>
                  <!---->
                  <!---->
                  <!---->
                  <!---->
                </li>
              </ul>
            </div>
          </div>
          <!---->
          <div class="ps__rail-x" style="left: 0px; bottom: 0px;">
            <div class="ps__thumb-x" tabindex="0" style="left: 0px; width: 0px;"></div>
          </div>
          <div class="ps__rail-y" style="top: 0px; right: 0px;">
            <div class="ps__thumb-y" tabindex="0" style="top: 0px; height: 0px;"></div>
          </div>
        </div>
      </perfect-scrollbar>
      <!---->
      </aht-navigation>
  </li>
</acme-role-facility>

Вот ошибка, которую я получаю:

**Unhandled Exception: OpenQA.Selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":".//span[starts-with(@id,'ACME Nursing')]"}
  (Session info: chrome=72.0.3626.109)
  (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 10.0.17134 x86_64)
   at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)
   at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementById(String id)
   at OpenQA.Selenium.By.<>c__DisplayClass16_0.<Id>b__0(ISearchContext context)
   at OpenQA.Selenium.By.FindElement(ISearchContext context)
   at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)
   at AHT.Browser.FacilityRoleSelect() in C:\Users\che7592\Documents\Visual Studio 2017\Projects\AHT\AHT\Program.cs:line 72
   at AHT.Program.Main(String[] args) in C:\Users\che7592\Documents\Visual Studio 2017\Projects\AHT\AHT\Program.cs:line 33**

1 Ответ

0 голосов
/ 20 февраля 2019

Нет элемента с вашим селектором .//span[starts-with(@id,'ACME Nursing')].

Вы хотите получить элемент с ACME Nursing текстом и селектором для которого является //span[normalize-space(.)='ACME Nursing'], где . это текст, а normalize-space удалитьпробелы.

Или: //span[normalize-space(.)='ACME Nursing' and @_ngcontent-c19]

...