Я хотел бы использовать expect для уже обнаруженного объекта, но получаю сообщение об ошибке. Я могу определить местонахождение родителя только до того, как он будет нажат - после этого он преобразуется в элементы ввода «один из многих-похожих», и единственный способ отличить его - это свойство «значение» (а не атрибут, таким образом, нельзя получить доступ из XPath) .
Мой код (что-то вроде):
parent_element = self.driver.find_element_by_xpath("//div/div/input[position()=10]/div")
parent_element.click() # After this I cannot locate parent_element any more
child_element = WebDriverWait(self.driver,3).until(
expect.element_to_be_clickable(
parent_element.find_element_by_xpath("./div")
)
)
child_element.click()
Что приводит к:
TypeError: find_element() argument after * must be an iterable, not function
"./div", поскольку я хочу найти подэлемент контекстного узла "parent_element"






Попробуйте эту строку:
child_element = WebDriverWait(parent_element, 3).until(
expect.element_to_be_clickable((By.XPATH, "./div")))
Обратите внимание, что element_to_be_clickable() должен получить кортеж из "by" и "value" в качестве единственного аргумента, но не WebElement
P.S. Я предполагаю, что expect - это ExpectedConditions
Да, ожидается это ExpectedConditions. Спасибо!
parent_element.find_element_by_xpath("./div")это правильный код('./div')? может быть('//div')