我如何点击下面的内容?我尝试过使用XPath但没有雪茄!
我的尝试:
WebElement submit = driver.findElement(By.xpath("/html/body/form/table[7]/tbody/tr[2]/td[1]/a"));
submit.click();
这是HTML:
<a href="#" onclick="return mysubit('save', window.document.jobform);">
<img src="/shared/images/template_APC/order/submit.gif" width="90" height="17" border="0" alt="Submit Booking">
</a>
答案 0 :(得分:0)
您还没有说明显示的错误是什么,但可能td[1]
包含多个a
元素,或者您定义的xpath中的内容已更改。如果您特别想要td1
,请在xpath中指定您想要的内容(即,它可能是//td[@name='cell1']
)等。我发现,在xpath中硬编码特定索引通常容易出错
对于xpath,我会选择:
//table[@id/class/name='xxx']//td[@id/class/name='xxx']/a[contains(@onclick,'mysubmit')]
然后点击它。 (我假设你提交的方法是mysubmit
,而不是你写的mysubit
。
答案 1 :(得分:0)
使用硬编码的XPath很容易出现问题......取决于它们运行的浏览器,HTML结构的变化频率等等。在这种情况下我通常做的是查看前面的所需的A
标记。希望你能找到一个ID
或class
等可以作为开头的。你可能不会这个幸运,但你希望能得到这个想法......
<div id="home">
<a href="#" onclick="return mysubit('save', window.document.jobform);">
<img src="/shared/images/template_APC/order/submit.gif" width="90" height="17" border="0" alt="Submit Booking">
</a>
</div>
在这种情况下,您可以使用CSS选择器快速获取所需的A
。
driver.findElement(By.cssSelector("#home > a")).click();
CSS选择器"#home > a"
表示从ID
“home”(#home
)的元素开始,找到{>
的直接子项(a
)4.0.0.BUILD-SNAPSHOT
1}}标签。