Selenium Python XPATH как выбрать поле ввода, которое находится в форме post?

#python #selenium #selenium-webdriver

#python #селен #selenium-webdriver

Вопрос:

У меня есть две формы на одной странице, как показано ниже

 <form method="get">
     <input type="submit">
</form>

<form method="post">
     <input type="submit">
</form>
  

Я могу получить последнее поле ввода, например

 //input[last()]
  

Мне нужно отслеживать поле ввода, если это ввод формы методом post.

Ответ №1:

Попробуйте следовать xpath:

 .find_element_by_xpath('//form[@method="post"]//input')
  

Или селектор css выглядит лучше:

 .find_element_by_css_selector('form[method="post"] > input')
  

Ответ №2:

Вы можете получить список форм, используя XPath. Затем извлеките его атрибут метода, как показано ниже:

 //form/[@method='post'] 
  

Как только у вас будет форма, вы можете получить потомка, как показано ниже:

 //form/descendant::input[@type='submit']
  

Это должно вернуть вам значение.