【问题标题】:Use variable to find xpath selenium not working使用变量查找 xpath selenium 不起作用
【发布时间】:2021-05-24 14:07:24
【问题描述】:

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

xpath 看起来像这样

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)

为什么这不起作用?

【问题讨论】:

  • “我不能使用这个变量”——你到底是什么意思?你有什么错误吗?
  • 是的,我收到错误,但变量已定义
  • 错误说明了什么?
  • 我特别收到此错误:文件“c:/Users/bodig/Desktop/Advanced adlo builder.py”,第 303 行,在 Bezeichnung = driver.find_element_by_xpath(xxpath1)
  • 还有这个:TypeError: Failed to execute 'evaluate' on 'Document': 结果不是节点集,因此无法转换为所需的类型。

标签: python selenium xpath


【解决方案1】:

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

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

【讨论】:

  • 我已经尝试了代码,但它仍然不起作用。现在它给了我这个错误:ine 301, in Bezeichnung = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "xxpath")))
  • 什么错误?暂停?还是找不到元素?
  • Timeout 我想这就是它所说的:第 80 行,直到 raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
  • 好像xpath这个表达式不正确。我猜那里没有iframe?因为这也可能是问题所在。
  • 我不太明白? IFrame 是什么意思?
猜你喜欢
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多