Selenium 按位置获取元素

Posted

技术标签:

【中文标题】Selenium 按位置获取元素【英文标题】:Selenium get elements by location 【发布时间】:2016-05-06 13:54:01 【问题描述】:

我正在尝试使用 SeleniumQuery 对一个元素进行点击,但每次我执行点击时,它都会说在同一位置有另一个元素。

有什么方法可以获取同一位置的所有元素?

【问题讨论】:

Selenium WebDriver - determine if element is clickable (i.e. not obscured by dojo modal lightbox)的可能重复 你尝试过使用 javascript 吗? @Louis 的问题并不完全相同,正如您在下面看到的,除了确定元素是否可点击之外,我需要检查哪个是可点击的,然后点击可点击的。跨度> @Dileep17 我不喜欢注入 javascript,但是谢谢! @jordiPons,您能否添加更多细节,例如在同一位置显示的元素的 html 结构?? 【参考方案1】:

我从未见过这样的案例,但我会检查element is clickable(Selenium WebDriver - determine if element is clickable (i.e. not obscured by dojo modal lightbox)) 并点击确实可以点击的那个。

那么,获取这两个元素,然后点击可点击的那个

【讨论】:

【参考方案2】:

为了获得所有存在于同一位置的元素,我们可以使用WebDriverfindElements 方法。请在下面找到示例代码:

List<WebElement> allElements = driver.findElements(By.xpath(<locator to identify the elements>));

// You can loop through the available elements using for-each loop
for(String eachEle : allElements) 
     // Write the logic

希望对你有帮助

【讨论】:

使用浏览器检查器我可以发现在同一个位置有两个元素,但它们有不同的 xpath,所以这个解决方案对我不起作用。谢谢

以上是关于Selenium 按位置获取元素的主要内容,如果未能解决你的问题,请参考以下文章

selenium 获取元素方法-注解

请教Python+selenium如何获取元素属性值问题

selenium如何获取已定位元素的属性值

按文本查找元素并获取xpath - selenium webdriver junit

Selenium:使用 Python 获取元素的坐标或尺寸

selenium总结:通过location 和 size 获取元素所在像素位置和尺寸,截取图片ROI