สมมติว่าฉันมีสิ่งนี้ (ตัวย่อ):
<form id="myform">
<!-- some input fields -->
<input type="submit" value="proceed"/>
</form>
จากนั้นฉันก็สามารถเลือกที่ปุ่มส่งโดย //form[@id='myform']/input[@type='submit']
XPath เยี่ยมมาก
อย่างไรก็ตามเทมเพลตของฉันอาจมีการเปลี่ยนแปลงและฉันต้องการมีความยืดหยุ่นในส่วนลึกของปุ่มส่ง มันอาจจะวางในตารางดังนี้:
<form id="myform">
<!-- some input fields -->
<table><tr><td>
<input type="submit" value="proceed"/>
</td></tr></table>
</form>
ฉันรู้ว่าฉันสามารถเลือกองค์ประกอบที่เป็นหลานได้ แต่ฉันไม่สามารถเลือก grand-grand-grand -...- ความลึกใด ๆ เช่น:
//form[@id='myform']/*/input[@type='submit']
เลือกเฉพาะลูกหลานเท่านั้นไม่มีความลึกเพิ่มเติม//form[@id='myform']/*/*/input[@type='submit']
เลือกเฉพาะ grand-grand-children ไม่มีความลึกเพิ่มเติมหรือน้อยลง//form[@id='myform']/**/input[@type='submit']
ไม่ถูกต้อง
ดังนั้นฉันจะเลือกปุ่มส่งนี้อย่างน่าเชื่อถือโดยไม่ใช้รหัสองค์ประกอบได้อย่างไร
//form//input
ส่งคืนค่า null ใน C # ในขณะที่ Chrome สามารถค้นหา 35 อินพุตโดยใช้ xpath เดียวกัน