我需要点击 dat 元素:
<span id="act_action9" class="" onclick="openDialog('export', event)">
text
</span>
我不能点击 id,因为它是动态的。点击后,我得到一些设置的窗口。
由于 ID 是动态的,您可以将 xpath 用于跨度内的文本。
driver.findElement(By.xpath("//span[text()='text']").click();
或者,如果部分 ID 仍然常见,那么您可以使用
//span[contains(@id,'act')]
请参阅动态 xpath 的示例
By.xpath("//span[@id [contains(.,'act_action')]]")
很棒的 xpath 备忘单:http: //extract-web-data.com/5-best-xpath-cheat-sheets-and-quick-references/
您应该使用 xpath 来单击此元素,因此您可以添加一个明确标识此元素的表达式。
能否请您包含更多 HTML 代码,因为仅包含代码不足以创建 xpath 表达式。
我推荐这个教程开始做好的 xpath 表达式: http ://www.w3schools.com/xpath/
您还可以使用 xpath 如下(假设只有数字是动态的):
".//span[contains(@id, 'act_action')]"