Python 使用变量操纵xpath

Python 使用变量操纵xpath,python,selenium,xpath,web-scraping,selenium-chromedriver,Python,Selenium,Xpath,Web Scraping,Selenium Chromedriver,所以我有一个代码,用户输入一个颜色变量,它的字符串叫做颜色。示例链接-。所以下一步我试着在网站上用 driver.find_element_by_xpath("//a[@data-style-name='{}'".format(color.get())) 语法是错误的,我不知道如何使用用户以前输入的变量正确地找到它。还有一个问题,当找到其中一种颜色时,如何选择该颜色作为签出选项,不确定我是否解释正确。感谢您提供任何信息尝试使用以下CSS选择器来识别元素: 'p.style.protect'

所以我有一个代码,用户输入一个颜色变量,它的字符串叫做颜色。示例链接-。所以下一步我试着在网站上用

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()
colorMap = {
    "brown" : 1,
    "cyan" : 2,
    "grey" : 3,
    ...
}

好的,我现在明白了,您希望使用xPath根据颜色动态选择元素。我注意到xPath

'//*[@id="details"]/ul/li[4]/a[1]'
找到右上角的元素

'//*[@id="details"]/ul/li[4]/a[2]'
查找右中间的元素,依此类推

因此,如果您可以简单地使用贴图将颜色映射到数字,例如

chosenColor = 
driver.find_element_by_css_selector('p.style.protect').text()
colorMap = {
    "brown" : 1,
    "cyan" : 2,
    "grey" : 3,
    ...
}
(不确定在我的示例中颜色是否匹配正确,但希望您能理解)

那么

driver.通过xpath('/*[@id=“details”]/ul/li[4]/a['+
'颜色映射。('')'+]')。单击()
应选择具有指定颜色的元素


这有用吗?如果您有任何问题,请告诉我。

尝试使用以下CSS选择器来标识元素:

'p.style.protect'
它看起来将唯一地标识显示所选颜色的元素

然后,您的颜色存储在元素的内部HTML中,因此您可以使用类似

chosenColor = 
driver.find_element_by_css_selector('p.style.protect').text()
colorMap = {
    "brown" : 1,
    "cyan" : 2,
    "grey" : 3,
    ...
}

好的,我现在明白了,您希望使用xPath根据颜色动态选择元素。我注意到xPath

'//*[@id="details"]/ul/li[4]/a[1]'
找到右上角的元素

'//*[@id="details"]/ul/li[4]/a[2]'
查找右中间的元素,依此类推

因此,如果您可以简单地使用贴图将颜色映射到数字,例如

chosenColor = 
driver.find_element_by_css_selector('p.style.protect').text()
colorMap = {
    "brown" : 1,
    "cyan" : 2,
    "grey" : 3,
    ...
}
(不确定在我的示例中颜色是否匹配正确,但希望您能理解)

那么

driver.通过xpath('/*[@id=“details”]/ul/li[4]/a['+
'颜色映射。('')'+]')。单击()
应选择具有指定颜色的元素


这有用吗?如果您有任何问题,请告诉我。

您可以使用下面的字符串格式,但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())

您可以使用下面的字符串格式,但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())

噢。没什么意义。我是一名计算机科学学位的大一新生,只是想做一个自己的小项目。用户定义的颜色作为文本输入Tkinter EntryBox。然后我得到()它,只需要一种简单的方法将该文本输入到xpath中,如我所示。因此,基本上是根据用户来更改xpath。否则我怎么做?找到路径后,我如何单击()或选择它。谢谢,对不起,这么多东西)噢。没什么意义。我是一名计算机科学学位的大一新生,只是想做一个自己的小项目。用户定义的颜色作为文本输入Tkinter EntryBox。然后我得到()它,只需要一种简单的方法将该文本输入到xpath中,如我所示。因此,基本上是根据用户来更改xpath。否则我怎么做?找到路径后,我如何单击()或选择它。(感谢并为这么多东西感到抱歉)