Javascript执行程序不会返回正确的WebElement

时间:2017-03-15 17:37:43

标签: javascript java selenium xpath selenium-webdriver

我通过Selenium使用JavaScript执行程序通过Point检索Web元素,如下所示:

element = (WebElement) driver.executeScript("return document.elementFromPoint(arguments[0], arguments[1])", 
                location.x, location.y); // x = 482 y = 539

虽然我提供了web元素的正确坐标,但Javascript似乎返回的不仅仅是我要求的元素。

当我尝试使用System.out.println(element.getText());打印元素文本时,会打印太多信息。

例如,如果您通过Selenium Map: Defining a Method for Type Integer and Double but not String导航到此页面,我可以检索XPath定义的元素的x y坐标:.//*[@id='question']/table/tbody/tr[1]/td[2]/div/div[1]/p[1]

当我在原始web元素(不是JS返回的元素)上执行方法System.out.println(element.getText());时,会产生以下输出:

  

我试图为我的新Map类定义一个方法putIfGreaterThan()(给定一个键,只有当新值大于旧值时才用新值替换旧值)。

但是,当我通过JavaScript执行程序传递坐标时,返回的元素从:

开始
  

投票

     

3

     

向下投票

     

喜爱

     

我试图定义.....

一路走来:

  

你可以做些什么吗?扩展数字或类似的东西;我将回答问题。现在要修复bug,所以不能这样做。 - 昨天的芭丝谢芭

     

你不能使用Number,因为Double和Integer从Number扩展? - 昨天Abubakkar

     

添加评论

这不是原始元素(它包含的内容远远多于原始元素)。

为什么它将整个元素作为元素的一部分返回?我确信坐标是正确的。

0 个答案:

没有答案