Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java处理SeleniumWebDriver中的重叠页面_Java_Selenium_Webdriver_Overlapping - Fatal编程技术网

如何使用java处理SeleniumWebDriver中的重叠页面

如何使用java处理SeleniumWebDriver中的重叠页面,java,selenium,webdriver,overlapping,Java,Selenium,Webdriver,Overlapping,嗨,我有基于extJS的UI。我面临着页面重叠的问题。 例如:我有一个页面,它有一个按钮,可以打开一个面板类的东西(注意:它不是一个单独的框架,也不是一个单独的窗口。它在同一个DOM中打开,就像在父页面DOM中一样)。该面板与基础页面重叠。该面板在其样式属性中具有z索引。现在我想确定这个面板上的控件。如何在SeleniumWebDriver中实现这一点。此外,面板和基础页可能具有相同的控件(但基础控件不处于活动状态)。那么,我们如何识别这些控制措施呢? 蒂亚。 嗨,我想添加UI的屏幕截图,但我无

嗨,我有基于extJS的UI。我面临着页面重叠的问题。 例如:我有一个页面,它有一个按钮,可以打开一个面板类的东西(注意:它不是一个单独的框架,也不是一个单独的窗口。它在同一个DOM中打开,就像在父页面DOM中一样)。该面板与基础页面重叠。该面板在其样式属性中具有z索引。现在我想确定这个面板上的控件。如何在SeleniumWebDriver中实现这一点。此外,面板和基础页可能具有相同的控件(但基础控件不处于活动状态)。那么,我们如何识别这些控制措施呢? 蒂亚。 嗨,我想添加UI的屏幕截图,但我无法添加,因为它说我需要至少10个声誉来发布图像。我怎样才能获得10个声誉? 还有一些控件出现在两个页面上,即重叠页面和重叠页面。由于它是一个基于extJS的UI,ID将自动生成,CSSLocator将识别出现在UI上的控件和相似的控件。因此,我想我只有一个选择,不知何故跳进面板,然后确定控制。我尝试使用driver.switchTo.activeElement,假设底层控件处于非活动状态,但它仍然对我没有帮助。这方面有什么帮助吗。短暂性脑缺血发作

附上截图。现在,正如您所看到的,我将突出显示的面板与基础页面重叠,它也存在于重叠页面的DOM中。 一些提示:1)我尝试使用XPath,但这没有帮助,因为我必须为UI中的每个此类控件硬编码XPath(我正在尝试动态生成XPath,但仍在进行中) 2) 我们是否可以告诉驾驶员选择具有焦点且处于活动状态的控件。 DOM源太大,无法粘贴。 有问题的控件是屏幕截图中显示的开始查询按钮,该按钮出现两次,并且可以在页面中多次出现。
我正在研究您建议的解决方案。

因为屏幕截图中只显示了几行DOM,所以我只能猜测您有多少行DOM

我假设您的DOM与此类似:


对于第2点,
driver.switchTo.activeElement
是您想要的,您前面已经提到过。但这不是一个优雅的解决方案,甚至根本不起作用。

您可以共享页面的html代码或网页链接,以便我们为您提供帮助吗?在这种情况下,您可以使用xpath。现在尝试添加您的网页截图。
<button id='ext-gen343'>Start query</button>
<div id="ext-gen1829" class=" x-window" style="width: 30px; height: 85px; margin: 0px; left: 0px; top: 0px; visibility: visible; display: block;">
    <button id='ext-gen1920'>Start query</button>
</div>