我正在尝试将变量嵌入到xpath表达式中。这很简单,但是由于某种原因,它对我不起作用。
下面的代码很好用,但是我想将字符串Feb
设置为变量,以便可以通过Jan,Mar等进行传递。
reverse_month_select = browser.find_elements_by_xpath("//div[@class='datepicker-months']/table/tbody/tr/td/span[contains(@class, 'month') and text() = 'Feb']")[0]
由于某些原因,当我收到IndexError时,此代码失败:
列表索引超出范围month_select =“ Jan”
reverse_month_select = browser.find_elements_by_xpath(“ // div [@ class ='datepicker-months'] / table / tbody / tr / td / span [包含(@class, 'month')和text()=“ + month_select +”]“)[0]
答案 0 :(得分:0)
我现在仍然确定到底出了什么问题,但是请尝试使用f字符串将月份输入xpath表达式,并让我知道它是否有效:
cal = ['Jan','Feb','March'] #etc.
for month in cal:
expression = f"//div[@class='datepicker-months']/table/tbody/tr/td/span[contains(@class, 'month') and text() = '{month}']"
然后将您的定义更改为:
reverse_month_select = browser.find_elements_by_xpath(expression)[0]