在某些应用程序中,div具有自定义的提示属性:
<div tip="<b>Kobold łucznik</b>" style="left: 450px; top: 220px;">...</div>
<div tip="<b>Kobold łucznik</b>" style="left: 320px; top: 320px;">...</div>
我正在使用nodeJs硒Web驱动程序从此应用程序中提取一些数据。我发现我可以使用xpath来获取属性等于某物的元素的信息。
我要实现的是找到自定义属性tip的值包含字符串'Kobold łucznik'
的所有元素。我想要这样做是为了能够从left: x px
和top: y px
收集x和y并在以后将其推送到某些对象数组。
但是第一步是找到所有这些元素。
我尝试过这样:
driver.findElements(webdriver.By.xpath('//@*[contains('Kobold łucznik','tip')]/..'))
但是没有运气。
正如@ zx485在评论部分中所述,这里的问题是tip
属性值中包含<
。不幸的是,我无法更改tip
的值。我的应用程序正常运行的关键是抓住这些元素,如果不这样做,我将无法完成工作。
答案 0 :(得分:1)
我认为这应该有效
driver.findElements(By.xpath("//div[contains(@tip,'Kobold łucznik')]")
或使用快速且兼容更多浏览器的css选择器
driver.findElements(By.css("div[tip*='Kobold łucznik']"))