【问题标题】:Position parameters are different for pynput and selenium locationpynput 和 selenium 位置的位置参数不同
【发布时间】:2020-05-04 12:01:05
【问题描述】:

我想在由 Selenium 控制的页面中查找按钮的 (x,y)。 1. 命令 find_element_by_id("id").location 返回 (x1,y1) 2.我使用包Pynput。我将鼠标放在按钮上并使用命令 mouse.position(从 Pynput 包执行)。

print(driver.find_element_by_id("send_btn").location) # Returns {'x': 591, 'y': 348}
print(mouse.position) # Returns (566, 468)

令人惊讶的是,结果大不相同。 有人知道这个区别吗?

【问题讨论】:

  • 检查我的答案。

标签: selenium position pynput


【解决方案1】:

位置和位置有区别。

这是一个例子:

e = driver.find_element_by_xpath("Something_As_An_Xpath")

print(e.position)
print(e.location)

结果(以您为例):

Position -> ['width': 566, 'height': 468]
Location -> ['y': 591, 'x': 348]

位置在发送位置时返回元素的宽度和高度,让我们说它的协调。

【讨论】:

  • 我在“FirefoxWebElement”中使用 Python 3.7.4 元素没有“位置”属性。因此,执行 e.position 会返回错误。当然,根据您的回复,我检查了以下命令: print(e.location) # 这会返回 {'x': 565, 'y': 420} print(e.size) # 会返回 {'height': 30.0, 'width': 100.0} 看来这两个命令与Pynput的位置不同 print(mouse.position) # Returns (566, 468) 所以“位置”不等于“大小”也不等于“位置”
  • 我明白了。我会再次尝试您的代码。删除您作为答案写的内容,只保留评论;)
  • 你找出差异的原因了吗?
猜你喜欢
  • 2022-11-11
  • 2015-06-16
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 2021-07-12
  • 1970-01-01
相关资源
最近更新 更多