gpt4 book ai didi

java - 当元素对 webdriver 可见时接收 ElementNotVisibleException

转载 作者:行者123 更新时间:2023-11-30 08:28:55 24 4
gpt4 key购买 nike

我试图让 selenium 单击 li 元素内的链接。这是在 while 循环内发生的。点击一直有效,直到我到达 li 低于 Firefox 窗口的水平。如果我在 selenium 尝试点击之前在 Firefox webdriver 窗口中手动向下滚动,点击将正常工作。

这是我用于点击的 java 代码。 Menu_item_module 是一个整数,每次循环运行以向下移动列表时它都会增加 1。下面的网络元素引用了 li 元素。

driver.findElement(By.id("digitalVellum_dijit_MenuListItem_" + menu_item_module)).click();

这是一个代码片段,其中包含相关页面中的一个 li 元素。

<li id="digitalVellum_dijit_MenuListItem_11" class="dijitLayoutContainer dijitContainer menuListItem level1 item-22 closed dijitLayoutContainer-child dijitLayoutContainer-dijitLayoutContainer" data-dojo-attach-event="onclick:click" data-dojo-attach-point="containerNode" widgetid="digitalVellum_dijit_MenuListItem_11">
<a href="#" data-dojo-attach-point="_link" tabindex="0">
<span class="expander" data-dojo-attach-event="onclick:_toggleState"></span>
<span class="label">Overview</span>
<div class="clearoutfloats"> </div>
</a>
<ul id="digitalVellum_dijit_MenuList_2" class="mainMenu dijitLayoutContainer dijitContainer dijitLayoutContainer-child dijitLayoutContainer-dijitLayoutContainer" data-dojo-attach-point="containerNode" widgetid="digitalVellum_dijit_MenuList_2">
</li>

我尝试使用以下代码让 selenium 滚动。

JavascriptExecutor jsx = (JavascriptExecutor)driver;
jsx.executeScript("window.scrollBy(0,100)", "");

这似乎没有效果。我认为这可能是因为滚动区域是一个框架,而不是整个页面。无论如何,我认为我根本不需要滚动。我认为 webdriver 会在需要选择元素时自动滚动。

任何帮助或见解将不胜感激。

谢谢,史蒂夫·阿奇博尔德

最佳答案

即使该元素不在 View 中(隐藏),您也可以在其上执行 javascript:

JavascriptExecutor jsx = (JavascriptExecutor)driver;
jsx.executeScript("arguments[0].click();", element);

其中 element 是您要点击的元素。

关于java - 当元素对 webdriver 可见时接收 ElementNotVisibleException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19847775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com