Selenium with Python:在阅读文本中使用循环
Selenium with Python: Using a loop in read text
我正在尝试将 i 参数传递给 xpath 表达式,但语法似乎不正确。
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, "//*[@id='wob_dp']/div[", i, "]/div[3]/div[1]/span[1]")
print(day1Temp.text)
谁能指出这里出了什么问题?
解析i
,你可以像下面这样使用f-string
:
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, f"//*[@id='wob_dp']/div[{i}]/div[3]/div[1]/span[1]")
这是修复代码的方法。也不要忘记增加 i
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, "//*[@id='wob_dp']/div[%d]/div[3]/div[1]/span[1]" % i)
print(day1Temp.text)
i += 1
您已初始化
i = 1
因此 i
的类型是 int
在 xpath 中,您需要将 i
作为 字符串 传递。所以你必须将 i 的类型转换为 string.
解决方案
使用 f-strings
您的有效代码块将是:
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, f"//*[@id='wob_dp']/div[{str(i)}]/div[3]/div[1]/span[1]")
print(day1Temp.text)
我正在尝试将 i 参数传递给 xpath 表达式,但语法似乎不正确。
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, "//*[@id='wob_dp']/div[", i, "]/div[3]/div[1]/span[1]")
print(day1Temp.text)
谁能指出这里出了什么问题?
解析i
,你可以像下面这样使用f-string
:
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, f"//*[@id='wob_dp']/div[{i}]/div[3]/div[1]/span[1]")
这是修复代码的方法。也不要忘记增加 i
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, "//*[@id='wob_dp']/div[%d]/div[3]/div[1]/span[1]" % i)
print(day1Temp.text)
i += 1
您已初始化
i = 1
因此 i
的类型是 int
在 xpath 中,您需要将 i
作为 字符串 传递。所以你必须将 i 的类型转换为 string.
解决方案
使用 f-strings
您的有效代码块将是:
i = 1
while i < 9:
day1Temp = driver.find_element(By.XPATH, f"//*[@id='wob_dp']/div[{str(i)}]/div[3]/div[1]/span[1]")
print(day1Temp.text)