【问题标题】:Python Selenium select xpath with variablePython Selenium选择带有变量的xpath
【发布时间】:2015-09-24 05:26:40
【问题描述】:

我正在尝试找到一个可见元素,该元素会根据用户在网站上输入的内容而改变。如果将以下内容与静态 xpath 搜索字符串一起使用,我会成功:

wait.until(EC.visibility_of_element_located((By.XPATH, "//a[text()='Default-Test']")))

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 + "'" + ")]")
  • 如果您已经解决了问题,那么您应该删除它,或者在下面提供一个答案(并接受它),这样问题就不会在未回答的问题页面上造成混乱。
  • 是什么让您觉得 XPath 表达式的开头应该有一个 \"
  • @LarsH 我对 python 有点陌生,但我试图将 xpath 搜索字符串与变量连接起来。因为搜索字符串是混合引号,我想我可以使用 \ 来转义下面的引号。我显然错了。

标签: python selenium xpath


【解决方案1】:

这是我遇到的问题的解决方案。尝试重新处理字符串和相关的转义 '\' 但没有成功。但是没有得到以下工作。我不清楚为什么会这样。

dtg_opt_1 = driver.find_element_by_xpath("//*[contains(text()," + " '" + dtg_found + "'" + ")]")

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2014-09-01
    • 2021-12-10
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多