这与“如何获取包含某些文本的元素的大小”问题不同。我可以使用Selenium webdriver获得包含文本的元素的大小,这不是问题。问题是,如果该元素包含一些文本,那么某些子元素,例如一个也包含文本的跨度,那么如何在不包含子元素的情况下获得文本的第一段的大小?
实际上,在Chrome中,如果您使用开发人员工具并选择该段,然后将鼠标悬停在该段上,则实际上可以看到该段的大小。它将弹出一个工具提示,例如“ #text 92x40”给出宽度和高度。
示例图片在这里:
但是问题是我如何从Selenium获取该信息。最好在Python中。
我还将添加一条注释来澄清:据我所知,Selenium无法在select_by_xpath方法中选择text()
。它最多只能选择父元素。这意味着,如果感兴趣的文本(文本的第一段)是xpath \div\div\text()[1]
,使用Selenium,我最多只能选择\div\div
,这就是为什么我找不到它的宽度。另一方面,可以使用\div\div\span
选择子范围元素,然后可以找到其宽度。
答案 0 :(得分:0)
您可以使用JavaScript来获取子元素的大小:
element = driver.find_element_by_xpath("//*[.='carefully scrutinise the government\'']")
width = driver.execute_script("return arguments[0].offsetWidth", element)