2017-02-16 50 views
1

我想通過錄制和回放來探索登錄按鈕xpath與此網站https://www.componence.com/login然後我試圖通過firepath和鉻瀏覽器默認xpath複印機。如何處理硒IDE中的動態ID

但它看起來像每次提交按鈕xpath得到改變與頁面加載。我有以下xpath的「登錄」按鈕。

.//*[@id='yui_patched_v3_11_0_1_1487250469606_202'] 
.//*[@id='yui_patched_v3_11_0_1_1487251369606_202'] 
.//*[@id='yui_patched_v3_11_0_1_1487250229606_202'] 
.//*[@id='yui_patched_v3_11_0_1_1487254369606_202'] 

你能幫我找回正確的XNA的登錄按鈕,我可以使用硒IDE?

回答

2

您可以使用下面XPath處理動態id

//button[starts-with(@id, "yui_patched_v3_11_0_1_")] 

但更好的方法是使用元素的文本內容:

//button[normalize-space(text())="Sign In"] 
1

我會用第二條語句不同意@ Andersson,因爲它可以用於.com,但不適用於.nl

正如我所看到的網站有第二種語言,我的觀點是避免使用基於多語言環境的文本選擇器。

此外,當我看到id似乎沒有一個有意義的價值,在這種情況下,嘗試確定一個獨特的父節,並從那裏去。對CSS/XPath的

一種選擇是:

CSS:form.sign-in-form button

的XPath://form[contains(@class, 'sign-in-form')]//button

+1

我可以不同意你:)至於QA我認爲,如果一個人想在完成授權英文版本的網站與'driver.get(「https://www.componence.com」)'他當然不想得到荷蘭語版本的登錄頁面 – Andersson

+1

是的,你是對的,也可以使用文本他可以也檢查翻譯是否可以,這可以是一個雙重檢查:) – lauda