[FIXED] XPath funktioniert nur mit vollständigem XPath, nicht durch Auswahl von id – Selenium

Problem

Ich habe 2 XPath, aber nur 1 funktioniert:

Das funktioniert:
By.XPath("//*[@id=\"app\"]/div[2]/div/div/div/div[1]/div[2]/div[2]/form/input");

Funktioniert nicht:
By.XPath("//*[@id=\"input-search\"]");

Auch probiert:
By.Id("input-search");

HTML

<div id="app">
    <div class="hidden-not-printing" b-0rz2d3qv9n=""></div>
    <div class="hidden-printing" b-0rz2d3qv9n="">
        <div class="main-layout" b-d47k65u4lc="">
            <nav class="nav-menu__container  nav-close-mobile" id="app-nav-menu" b-cpvcfm2reo="">
            </nav><div class="page">
                <nav class="page-header" b-9p487gxfqe="">
                </nav><div class="page-content">
                    <aside class="left-side-content  aside-panel-flex" b-6cu9cqksy9="">
                    </aside>
                    <div class="primary-content ">
                        <div class="page-content__navigation hidden-desktop"><div><i class="uil uil-angle-right-b"></i>Alle ressourcer</div></div>
                        <div class="page-header-actions__container" b-2n7grz7ttq="">
                            <div class="flex-fit-content" b-2n7grz7ttq="">
                            </div>
                            <button type="button" class="btn btn-light btn-sm searchbutton hidden-desktop" role="button" _bl_20="">
                            </button>
                            <div class="searchbar searchbar-visible" b-nz34ntt3ce="">
                                <button type="button" class="btn btn-light btn-sm searchbutton hidden-mobile hidden-tablet" role="button" _bl_21="">
                                </button>
                                <form b-nz34ntt3ce="">

<input id="input-search" class="regular-13" type="search" placeholder="Søg..." b-nz34ntt3ce="" _bl_19="">

                                </form>
                                <button type="button" class="btn btn-light btn-sm closebutton" role="button" _bl_22="">
                                </button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

Ich versuche, mein Suchfeld auszuwählen, damit ich Selenium einrichten kann, um eine Suche auf meiner Webseite durchzuführen. Aber wenn ich versuche, die ID zu verwenden, erhalte ich diesen Fehler:

OpenQA.Selenium.ElementNotInteractableException : Element nicht interaktiv

Ich weiß nicht, warum ich die ID nicht zum Laufen bringen kann, wenn der vollständige XPath einwandfrei funktioniert. Hoffe das mir jemand sagen kann 🙂

Lösung

Laut dem freigegebenen HTML sollten sowohl By.XPath("//*[@id="app"]/div[2]/div/div/div/div[1]/div[2]/div[2]/form/input");als auch By.XPath("//*[@id="input-search"]");funktionieren.

Falls der Fall
OpenQA.Selenium.ElementNotInteractableException : element not interactablefür dieselbe Zeile erscheint, dh für das Ändern des ersten XPath mit dem zweiten, bedeutet dies, dass der erste XPath auf der gesamten Seite eindeutig ist, während der zweite XPath nicht eindeutig ist, sodass er mit mehr als 1 Element übereinstimmt, während das erste übereinstimmende Element dies nicht ist worauf Sie zugreifen möchten, und dieses Element ist nicht interaktiv, wahrscheinlich versteckt.


Beantwortet von –
Prophet


Antwort geprüft von –
Candace Johnson (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like