gpt4 book ai didi

java - Selenium (Java) 消息 "Unable to locate element"但元素和 XPath 存在

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:03 24 4
gpt4 key购买 nike

我是 Selenium WebDriver 的新手,使用 NetBeans Java 和 Firebug for Firefox 来获取 XPath。

问题是即使某些元素在浏览器中可见且可单击,并且 Firebug找到 XPath 表达式,我仍然收到错误“无法定位元素”。问题是,该元素不在框架中(没有任何框架),也不在另一个窗口中,它是可见的、可点击的,并且具有清晰的 XPath 表达式。

我使用了Wait和Thread.sleep,但没有帮助。另外,我尝试了在 Stack Overflow 上能找到的与此问题类似的所有解决方案。

该元素位于表格内部,其中有一些“div”元素。这是 XPath 表达式:

.//*[@id='NavigationRadPanelBar_i2_i0_trvStandardView']/ul/li[3]/div/span[3]

看来面板有问题,因为它也找不到面板。我尝试了同一面板中的另一个元素,该元素的标题和文本如下:

driver.findElement(By.xpath("//*[contains(text(),'Technical Attributes')]")).click();

但我仍然收到同样的消息。该面板内的所有元素和面板本身都类似。看来无论我尝试什么,都无法找到。该面板之外的所有内容都与驱动程序一起正常工作。

该页面有一个左侧面板,这些元素位于其中。有的是可以展开的节点,有的只是链接,但什么也定位不到。

明明存在且可见的元素,但WebDriver却无法定位到,可能是什么原因?

我试图找到主面板:

    driver.findElement(By.xpath(".//*[@id='NavigationRadPane']")).click();

但仍然是同样的异常。

这是 HTML 内容的一部分(很长):

<div id="RAD_SLIDING_PANE_CONTENT_navigatiionRadSlidingPane" class="rspSlideContent" style="overflow: hidden; width: 200px; height: 579px;">
<div id="NavigationRadPanelBarPanel" style="display: block;">
<div id="NavigationRadPanelBar" class="RadPanelBar RadPanelBar_Office2007" postback="false" style="background-color:GhostWhite;height:100%;width:100%;">
<ul class="rpRootGroup">
<li class="rpItem rpFirst">
<li class="rpItem">
<li class="rpItem rpLast">
<a class="rpLink rpExpandable rpExpanded" href="#">
<div class="rpSlide" style="display:block;">
<ul class="rpGroup rpLevel1 111460" style="display: block; height: 274.731px; width: 100%;">
<li class="rpItem rpFirst rpLast">
<div class="rpTemplate">
<div id="NavigationRadPanelBar_i2_i0_trvStandardView" class="RadTreeView RadTreeView_Office2007">
<ul class="rtUL rtLines">
<li class="rtLI rtFirst">
<li class="rtLI">
<li class="rtLI">
<div class="rtMid">
<span class="rtSp" />
<span class="rtPlus rtPlusHover" />
<img class="rtImg" src="..." alt="Technical Attributes" />
<span class="rtIn" title="Technical Attributes">Technical Attributes</span>
</div>
<ul class="rtUL" style="display:none;">
</li>
<li class="rtLI rtLast">

最佳答案

用途:

driver.switchTo().activeElement();

这样,驱动程序将切换到您单击的面板。然后您可以在面板中执行您想要的其余操作。

关于java - Selenium (Java) 消息 "Unable to locate element"但元素和 XPath 存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44905306/

24 4 0
文章推荐: java - 如何在 Sonarqube 插件中依赖 log4j?
文章推荐: html - 如何对齐
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com