Python 使用变量查找不工作的xpath selenium

Python 使用变量查找不工作的xpath selenium,python,selenium,xpath,Python,Selenium,Xpath,我正在使用selenium开发web自动化,我需要找到一个使用xpath的元素。这本身不是问题,但是代码需要运行多次,当它运行时,HTMLXPath会发生变化。这也不是问题。我每次都使用简单的数学来获得新的xpath xpathes看起来像这样 1. run: '//*[@id="input-text-3"]' 2. run: '//*[@id="input-text-5"]' 3. run: '//*[@id="input-text-7&quo

我正在使用selenium开发web自动化,我需要找到一个使用xpath的元素。这本身不是问题,但是代码需要运行多次,当它运行时,HTMLXPath会发生变化。这也不是问题。我每次都使用简单的数学来获得新的xpath

xpathes看起来像这样

1. run: '//*[@id="input-text-3"]'
2. run: '//*[@id="input-text-5"]'
3. run: '//*[@id="input-text-7"]' etc.
我使用以下代码解决了此问题:

y = 1
#Corme browser already defined and on website 
while True:
    mathop1 = y*2 + 1
    xxpath = ""'//*[@id="input-text-' + str(mathop1) + '"]'""
    xxpath1 = "'" + str(xxpath) + "'"
    print(xxpath1)    
    Bezeichnung = driver.find_element_by_xpath(xxpath1)
    Bezeichnung.send_keys(file1name)
    y = y + 1
这样做的目的是,每次程序循环时,它都会更新y,以便xpath是正确的。我尝试使用xxpath1的输出来查找元素,就像您通常会做的那样,它工作正常,但是只要我使用变量,它就不工作了。具体来说,问题是我不能使用这个变量

Bezeichnung = driver.find_element_by_xpath(xxpath1)

为什么这不起作用?

首先,我想你必须在那里设置一个等待条件。
另外,我不明白为什么要在字符串中使用这么多字符串,并再次将字符串转换为字符串,所以我删除了那个字符串

y = 1
#Corme browser already defined and on website 
while True:
    mathop1 = y*2 + 1
    xxpath = '//*[@id="input-text-{}"]'.format(mathop1)
    Bezeichnung = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, xxpath)))
    Bezeichnung.send_keys(file1name)
    y = y + 1

“我不能使用这个变量”——你的确切意思是什么?您是否遇到了一些错误?是的,我遇到了一个错误,但是变量被定义了错误说明了什么?我遇到了这个错误:文件“c:/Users/bodig/Desktop/Advanced adlo builder.py”,第303行,在Bezeichnung=driver中。通过xpath查找元素(xxpath1)还有:TypeError:未能对“Document”执行“evaluate”:结果不是节点集,因此无法转换为所需的类型。我已尝试了该代码,但仍然无效。现在它给了我这个错误:ine301,在Bezeichnung=WebDriverWait(driver,20)中。直到(EC.element\u to\u be\u clickable((By.XPATH,“xxpath”))什么错误?暂停?或者元素未找到?Timeout我想这是它所说的:第80行,在until raise TimeoutException(message,screen,stacktrace)selenium.common.exceptions.TimeoutException:message:似乎
xpath
表达式不正确。我想那里没有
iframe
?因为这也可能是个问题。我不太明白?你说的IFrame是什么意思?