java - 使用 Selenium Point 和 Dimension 类在移动屏幕上的 WebElement 的 X Y 坐标是错误的

标签 java selenium-webdriver appium

当我使用 Selenium webdriver 的点和维度类找出移动屏幕上 WebElement 的 x、y 坐标时。它给出了不同的坐标值。

例如:下面是WebElement的XPath和代码片段

WebElement plusYouXp = driver.findElement(By.xpath(“.//*[@id='p_p_id_QuoteHomeBTemplate_WAR_PeDevportlet_']/div/div/div[2]/form/ul/li[2]/div/div/ul/li[1]/h1/span"));

System.out.println("plusUxpath: "+plusYouXp.getText()); 

Point p = plusYouXp.getLocation();
Dimension size = plusYouXp.getSize();
int xAxis = p.x + (size.width/2);
int yAxis = p.y + (size.height/2);
System.out.println(xAxis+" -- “+yAxis);

changeContextToNativeAppView();
Thread.sleep(2000);

driver.tap(1, xAxis, yAxis, 1);

这里,它没有点击正确的 x,y 值,因为 Java 代码计算后的 X 和 Y 值是 180 和 495

另一方面,当我使用开发者选项中的指针位置查找坐标时

如下图:

enter image description here

在图2中(如上所示):它给出了正确的坐标,如下突出显示的部分所示

enter image description here

该坐标适用于此命令

driver.tap(1,554,1067,200);

我想知道,如何使用 Appium 或 Selenium 的 Java 代码找到准确的坐标。

最佳答案

试试这个:

WebElement plusYouXp = driver.findElement(By.xpath(“.//*[@id='p_p_id_QuoteHomeBTemplate_WAR_PeDevportlet_']/div/div/div[2]/form/ul/li[2]/div/div/ul/li[1]/h1/span"));

center_x=plusYouXp.getSize().getHeight()/2;
center_y=plusYouXp.getSize().getWidth()/2;
System.out.println(center_x+" "+center_y);

关于java - 使用 Selenium Point 和 Dimension 类在移动屏幕上的 WebElement 的 X Y 坐标是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970675/

相关文章:

java - Java 中的 MidiUnavailableException?

java - Android DatePicker 一个月中的某一天?

c# - 为 XSD 文件的加载批量生成示例 xml

java - 具有动态可见性的不可点击元素/操作

java - Webdriver 引用变量中的元素

webdriver - 在页面中查找损坏的图像并将图像替换为另一个图像

java - 如何按名字字母顺序和姓氏排序

python - 安装Appium的一些问题

java - 在 Android 上运行 Appium 测试时出现错误 "An unknown server-side error occurred.."

java - 使用 snmp 协议(protocol)集中日志文件