我必須在html頁面中找到所有「類似登錄表單」的表單。這樣做的要求是它包含文本輸入字段,密碼字段和按鈕(提交或只是一個按鈕)。html頁面中所有特定表單的xpath模式
不應該提及任何元素名稱,因爲它應該通過不同的語言突變來工作。
而且我需要在頁面中找到符合這些要求的所有表單。我想這可以使用XPath來完成,但我無法弄清楚任何工作模式。
順便說一下,我使用python的webdriver。
我必須在html頁面中找到所有「類似登錄表單」的表單。這樣做的要求是它包含文本輸入字段,密碼字段和按鈕(提交或只是一個按鈕)。html頁面中所有特定表單的xpath模式
不應該提及任何元素名稱,因爲它應該通過不同的語言突變來工作。
而且我需要在頁面中找到符合這些要求的所有表單。我想這可以使用XPath來完成,但我無法弄清楚任何工作模式。
順便說一下,我使用python的webdriver。
所以你需要一個XPath表達式,以每form
元素(//form
)有其後代中的type=password
([.//input[@type='password']]
)的input
元素,標準input
場([.//input[not(@type) or @type='' or @type='text']]
)和一個提交按鈕([.//input[@type='submit'] or .//button[not(@type) or @type='' or @type='submit']]
)相匹配。
所有一起成爲
//form[.//input[@type='password']][.//input[not(@type) or @type='' or @type='text']][.//input[@type='submit'] or .//button[not(@type) or @type='' or @type='submit']]
這可能不是任何形式的匹配,因爲提交按鈕和文本輸入框是很難做出一個一直在努力的規則。處理這些元素時的問題是,它們具有許多值,如果提供了無效的類型,則它們默認爲text
或submit
狀態。例如,我的輸入元素type
屬性設置爲nonvalidtype
,它仍然是標準文本輸入。
此外,type
屬性是不區分大小寫,並且認爲這是比較複雜的正確XPath表達式,它也需要的XPath 2.0:
//form[.//input[lower-case(@type)='password']][.//input[not(@type) or @type='' or lower-case(@type)='text']][.//input[lower-case(@type)='submit'] or .//button[not(@type) or @type='' or lower-case(@type)='submit']]
謝謝,這可能是我正在尋找的。我認爲,可能沒有辦法將涵蓋我需要的100%案例。 – dakov
什麼,你必須嘗試迄今模式?他們爲什麼不工作?你能否將你的嘗試和可能的錯誤信息包含在你的問題中?此外,我們需要一個精簡!輸入HTML頁面來處理。否則,它只是猜測。 –