我通过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
添加评论
这不是原始元素(它包含的内容远远多于原始元素)。
为什么它将整个元素作为元素的一部分返回?我确信坐标是正确的。