Python Selenium选择带有变量的动态xpath

Posted

技术标签:

【中文标题】Python Selenium选择带有变量的动态xpath【英文标题】:Python Selenium select dynamic xpath with variable 【发布时间】:2022-01-14 13:29:09 【问题描述】:

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

wait.until(EC.visibility_of_element_located((By.XPATH,"//div[text()='Hierarchy']/following::input[@id='label-input']")))

Default-Test 会随意改变,我有如何获取这个值,但是我在 XPath 搜索中使用变量没有成功:Test method 1 doesn't work

dtg_found = "Default-Test" 

测试方法2不起作用,这是实际定位值的方法

dtg_opt_1 = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[text()='" + label_name + "']/following::input[@id='label-input']"))) 

面临以下错误:

【问题讨论】:

【参考方案1】:

尝试使用如下的 f 字符串:

dtg_opt_1 = wait.until(EC.visibility_of_element_located((By.XPATH, f"//div[text()=label_name]/following::input[@id='label-input']")))

【讨论】:

它对我不起作用 :( 我期待下面的函数 . def enter_the_value_in_textbox(self, label_name, label_value): # self.input_element(By.XPATH, f"//div[text ()=label_name]/following::input[@id='label-input']", label_value) ele = self.driver.find_element_by_xpath(f"//div[text()=label_name]/following ::input[@id='label-input']") self.driver.execute_script("arguments[0].click();", ele)

以上是关于Python Selenium选择带有变量的动态xpath的主要内容,如果未能解决你的问题,请参考以下文章

使用 Selenium python 驱动程序选择带有文本的 <option> 的正确方法是啥[重复]

Selenium驱动如何选择?

Python3.x:selenium遍历select下拉框获取value值

使用 Python selenium 选择一个元素(文本)

如何使用 Selenium Webdriver 和 Python 从这个非选择下拉菜单中选择这个元素

Python3.x下Selenium3.x之安装篇