[英]Manipulate xpath using variables
所以我有一段代碼,用戶在其中輸入一個顏色變量,並將其字符串稱為顏色。 示例鏈接-https: //www.supremenewyork.com/shop/jackets/k56l3oteu/hjylineo1 。 因此,接下來我嘗試使用
driver.find_element_by_xpath("//a[@data-style-name='{}'".format(color.get()))
語法錯誤,我不確定如何使用用戶之前輸入的變量正確找到它。 還有一個問題,當找到其中一種顏色時,如何選擇該顏色作為檢出選項,不確定我是否解釋正確。 感謝您提供任何信息
嘗試使用以下CSS選擇器來標識元素:
'p.style.protect'
看起來,它將唯一地標識顯示所選顏色的元素。
然后,您的顏色存儲在元素的內部HTML中,因此您可以使用類似
chosenColor =
driver.find_element_by_css_selector('p.style.protect').text()
好的,我現在知道您要使用xPath根據顏色動態選擇元素。 我注意到xPath
'//*[@id="details"]/ul/li[4]/a[1]'
找到右上角的元素,
'//*[@id="details"]/ul/li[4]/a[2]'
找到右中間元素,依此類推...
因此,如果您可以簡單地使用地圖將顏色映射到數字,則類似
colorMap = {
"brown" : 1,
"cyan" : 2,
"grey" : 3,
...
}
(不確定顏色在我的示例中是否正確匹配,但希望您能理解)
然后,
driver.find_element_by_xpath('//*[@id="details"]/ul/li[4]/a[' +
'colorMap.("<whatever color you are looking to select>")' + ]').click()
應該選擇具有您指定顏色的元素。
有幫助嗎? 如果您有任何疑問,請告訴我。
您可以在下面使用字符串格式,但xpath中有錯誤-結尾處缺少[ ]
:
driver.find_element_by_xpath("//a[@data-style-name='{}']".format(color.get()))
driver.find_element_by_xpath("//a[@data-style-name='{0}']".format(color.get()))
driver.find_element_by_xpath("//a[@data-style-name='%s']" % color.get())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.