簡體   English   中英

使用變量操縱xpath

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM