我正在开发一个只需很少信息的测试程序。在这种特殊情况下,我的程序在运行之前不知道页面中元素的ID,因为页面上的Javascript在运行时动态分配这些元素。我唯一的常数是结构和我正在寻找的文字。我将包括正在生成的DOM的一个示例的屏幕截图。在这种情况下,我知道我想访问带有文本应用的按钮,该按钮显示在带有文本“To Location:”的标签旁边。是否有办法使用xpath操纵它们的关系并确保我正在访问正确的元素。我不能只访问应用按钮,因为页面上有6个应用按钮,带有动态生成的ID。它们旁边的标签是不同的,所以我试图使用它并从那里操纵路径。救命?
答案 0 :(得分:0)
这是可能的。如果你提供整个html代码,我可以提供更好的xpath。但是对于你粘贴的内容,这是一个可能有效的简单方法:
//td[div//label[text()='To Location:']]/following-sibling::td[1]//button[text()='Apply']
答案 1 :(得分:0)
有一个略长的蜿蜒方式,但那会按类生成一个元素列表并单击带有正确文本的元素
`var elements = driver.FindElements(By.Class("text-pb"));
foreach(var element in elements)
{
if(element.Text.Equals("Searched Text"))
{
element.click();
}
}`
如果你想点击按钮,可能会有效。 我在工作网站生成的页面上使用这些东西,所以它应该做你的事后。