我试图找到一个可见元素,该元素将根据用户在网站上输入的内容而变化。如果将以下内容与静态 xpath 搜索字符串一起使用,我会成功:
wait.until(EC.visibility_of_element_located((By.XPATH, "//a[text()='Default-Test']")))
默认测试将任意更改,我有如何获取该值,但我在 xpath 搜索中使用变量尚未成功:
测试方法1不起作用
dtg_found = "Default-Test"
测试方法2不起作用,这是定位值的实际方法
dtg_found = driver.find_element_by_name("result[0].col[1].stringVal").get_attribute("value")
dtg_opt_1 = wait.until(EC.visibility_of_element_located((By.XPATH, "\"//a[text()='" + dtg_found + "']" + '"')))
最佳答案
这是我遇到的问题的解决方案。尝试重新处理字符串和相关的转义符“\”,但没有成功。然而,确实得到了以下工作。我不清楚为什么这会起作用。
dtg_opt_1 = driver.find_element_by_xpath("//*[contains(text()," + " '" + dtg_found + "'" + ")]")
关于Python Selenium 选择带变量的 xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31256469/