【发布时间】: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 搜索字符串与变量连接起来。因为搜索字符串是混合引号,我想我可以使用 \ 来转义下面的引号。我显然错了。