2014-01-16 82 views
0
<input id="Proc#fr#2-1-111" type="text" data-ctrl="JSCtrl" name="fr" style="display: none; background-color: rgb(224, 224, 224); width: 80px;" disabled=""/> 
<select id="Proc#fr#2-1-111" data-ctrl="JSCtrl" name="fr" optionsdict="3,25 cm,4,29.97 cm,5,30 cm" style="border: 1px solid rgb(127, 157, 185); width: 80px;"> 
<select id="Proc#fr#2-1-111" data-ctrl="JSCtrl" name="fr" optionsdict="3,25 cm,4,29.97 cm,5,30 cm,6,50 cm,7,59.94 cm,8,60 cm" style="border: 1px solid rgb(127, 157, 185); display: none; width: 80px;" disabled=""> 

如何檢測「選擇」選項時多個屬性具有相同的id

在上面的代碼,ID是相同的輸入,選擇。我需要選擇一個值。是否有可能通過使用Python的硒webdriver?

+2

「正確」 的解決辦法是,以消除重複的ID。 – user2864740

+0

html代碼不能更改。我需要找到與現有的html代碼選擇選項 – Venu

+0

該代碼是不正確的HTML。 'Id'不能重複。而不是修復症狀,你應該修復源頭。 – RedX

回答

1

首先,這個HTML格式不正確。應避免重複的ID。如果您無權修改源代碼,請與您的經理聯繫。硒開發人員應該能夠在需要時更改源代碼。

對於「如何通過手段id與風格標籤結合查找元素」的問題,以下是您可以如何實現它的問題。

使用CSS選擇器

driver.find_element_by_css_selector("select[id='Proc#fr#2-1-111']:not([style*='display: none'])") 

使用XPath

driver.find_element_by_xpath(".//select[@id='Proc#fr#2-1-111' and not(contains(@style, 'display: none'))]") 
+0

感謝您的更新。我會嘗試你給出的解決方案。根據HTML代碼,它是傳統代碼,因此我不能改變,但我會引起我的經理的注意 – Venu

相關問題