XPath仅适用于完整XPath,而不是通过选择id - Selenium

5lwkijsr  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(118)

我有两个XPath,但只有一个有效:
此工作方式:By.XPath("//*[@id=\"app\"]/div[2]/div/div/div/div[1]/div[2]/div[2]/form/input");
不工作的:By.XPath("//*[@id=\"input-search\"]");
还试探着:
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>

我试图选择我的搜索字段,这样我就可以设置selenium在我的网页上进行搜索。但是当我尝试使用id时,我得到这个错误:
异常错误:元素不可交互
我不知道为什么我不能让Id工作,当完整的XPath工作正常。希望有人能告诉我:)

7uhlpewt

7uhlpewt1#

根据共享的HTML,By.XPath("//*[@id="app"]/div[2]/div/div/div/div[1]/div[2]/div[2]/form/input");By.XPath("//*[@id="input-search"]");都应该工作。
如果OpenQA.Selenium.ElementNotInteractableException : element not interactable出现在同一行,即用第二个XPath更改第一个XPath,则意味着第一个XPath在整个页面上是唯一的,而第二个XPath不是唯一的,因此它匹配不止一个元素,而第一个匹配的元素不是您想要访问的元素,并且该元素不可交互,可能是隐藏的。

相关问题