#python #selenium #selenium-webdriver #xpath #bdd
#питон #селен #селен-веб-драйвер #xpath #bdd
Вопрос:
Я пытаюсь найти видимый элемент, который изменится в зависимости от того, что пользователь вводит на веб-сайте. Я добьюсь успеха, если буду использовать следующую строку со статической строкой поиска XPath:
wait.until(EC.visibility_of_element_located((By.XPATH,"//div[text()='Hierarchy']/following::input[@id='label-input']")))
По умолчанию-Тест будет меняться произвольно, и у меня есть способ получить это значение, но мне не удалось использовать переменную в поиске XPath:Метод тестирования 1 не работает
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']")))
Комментарии:
1. Это не сработало для меня 🙁 Я ожидаю, как показано ниже, функции . деф введите_валюе_валюе_втекстовое поле(self, имя_метки, значение_метки): # self.input_элемент(By. XPATH, f»//div[текст()={имя метки}]/следующее::ввод[@id=’ввод метки’]», значение метки) ele = self.driver.find_element_by_xpath(f»//div[текст()={имя метки}]/следующее::ввод[@id=’ввод метки’]») self.driver.execute_script(«аргументы[0].нажмите();», элемент)