硒如何获取文本大小

时间:2019-12-10 19:46:42

标签: python selenium selenium-webdriver

这与“如何获取包含某些文本的元素的大小”问题不同。我可以使用Selenium webdriver获得包含文本的元素的大小,这不是问题。问题是,如果该元素包含一些文本,那么某些子元素,例如一个也包含文本的跨度,那么如何在不包含子元素的情况下获得文本的第一段的大小?

实际上,在Chrome中,如果您使用开发人员工具并选择该段,然后将鼠标悬停在该段上,则实际上可以看到该段的大小。它将弹出一个工具提示,例如“ #text 92x40”给出宽度和高度。

示例图片在这里:

Tooltip with text size example

但是问题是我如何从Selenium获取该信息。最好在Python中。

我还将添加一条注释来澄清:据我所知,Selenium无法在select_by_xpath方法中选择text()。它最多只能选择父元素。这意味着,如果感兴趣的文本(文本的第一段)是xpath \div\div\text()[1],使用Selenium,我最多只能选择\div\div,这就是为什么我找不到它的宽度。另一方面,可以使用\div\div\span选择子范围元素,然后可以找到其宽度。

1 个答案:

答案 0 :(得分:0)

您可以使用JavaScript来获取子元素的大小:

element = driver.find_element_by_xpath("//*[.='carefully scrutinise the government\'']")
width = driver.execute_script("return arguments[0].offsetWidth", element)