【发布时间】:2016-09-09 22:35:12
【问题描述】:
我已经反应生成了具有这种结构的网页:
div
...
div
div
div class=x_1
<span randomtag=y> text1 </span>
div class=x
<span randomtag=z> text2 </span>
div class=x
<span randomtag=q> text3 </span>
div
div
div
...
div
我正在尝试单击 randomtag=z。我试过了:
xpath:
- 我可以找到 randomtag y 的 div,只需使用 .../div[2]/div[1] 将结构折腾到 div(没有其他标识符)
- 我无法使用 xpath 获取第二个 div(.../div[2]/div[1] 有效,但 .../div[2]/div[2] 无效)
css:
以下也不起作用
css=div > span[randomtag="z"]
css=div.x span[randomtag="z"]
我对这里选择正确元素的可能性有点迷茫。
机器人代码只是基本的 等到元素可见 |定位器(不管它是什么) 例如。
wait until element is visible css=div.x span[randomtag="z"]
wait until element is visible xpath=<previous path here>/div[2]/div[2]
有什么想法吗?这是反应的原因吗?
我得到“元素在 x 秒内不可见”。对于超时,我尝试了 5-30 秒。
编辑:
我还尝试使用搜索工具(在浏览器上的开发工具后面)找到 xpath,当我将 xpath 或 css 定位器插入搜索时,它会找到元素。
【问题讨论】:
-
你想在这里实现什么?您是否要使用元素
z来识别div of randomtag = 'y'? -
我试图让 Robot 找到 div(randomtag=z 的父级)或 span 本身(randomtag=z)。最终目标是让机器人定位元素,以便能够使用“单击元素”命令单击它。
-
//span[@randomtag='z']/..它会给你randomtag = z的父div -
是的。这可以在网页上找到元素,但机器人无法识别它。我仍然收到“元素在 x 秒内不可见”错误。如果我把它放在网页上的开发者工具搜索中(在 f12 后面),它可以找到,但我无法让机器人找到它。
标签: reactjs xpath selenium-webdriver css-selectors robotframework