使用Java selenium....我必须滚动到页面最右侧的元素,但问题是这个元素只在滚动之后才出现在DOM中。使用Javascript Executor或Action类没有帮助,因为它首先搜索元素(在DOM中不可用)-->I get element not found exception其次,我不能给予滚动的x,y坐标,因为它是一个动态表,列不断改变其位置。(如果我给出的坐标是最右边的,元素出现在中间,脚本仍然会失败)
7xzttuei1#
while ( !element(yourElement).isPresent()) { js.executeScript("arguments[0].scrollLeft += 1000;", grid); }
在编写代码之前,您将网格定义为WebElement,以便在其中滚动您也可以尝试使用像素(1000)数字来查看它滚动的程度。是的,命令arguments[0].scrollLeft是向右滚动。
WebElement
arguments[0].scrollLeft
ubof19bj2#
如果“selenium首先尝试在DOM中搜索目标元素,否则脚本失败”-然后将JavaScript执行器保持在'IF'语句中,而不是while。如:If(元素不可见)执行JavaScript执行程序
2条答案
按热度按时间7xzttuei1#
在编写代码之前,您将网格定义为
WebElement
,以便在其中滚动您也可以尝试使用像素(1000)数字来查看它滚动的程度。是的,命令
arguments[0].scrollLeft
是向右滚动。ubof19bj2#
如果“selenium首先尝试在DOM中搜索目标元素,否则脚本失败”-然后将JavaScript执行器保持在'IF'语句中,而不是while。如:If(元素不可见)执行JavaScript执行程序