Каков наилучший способ поддерживать xpath в selenium?

#python #python-3.x #selenium

#python #python-3.x #selenium

Вопрос:

На данный момент я просто сохраняю его в файле ‘.ini’ и получаю доступ через ‘configparser’. Но проблема в том, что когда мы работаем с некоторыми большими приложениями с таким количеством страниц в нем, очень сложно вносить какие-либо изменения.

 
[login]
login_window=//h4[text()='Login']
username_input=//input[@name='username']
password_input=//input[@name='password']
login_button=//input[@value='Login']
  

Ответ №1:

Сохранение XPATH извне — хороший подход, но XPATH отнимает много времени, ему не хватает производительности, и, как вы выяснили, его сложно поддерживать.

Вместо этого используйте CSS_SELECOTRS, CLASSNAME или ID — они редко меняются, и ваши тесты обновляются с новыми изменениями пользовательского интерфейса. Также — используйте шаблон объекта страницы — вы можете отображать страницы пользовательского интерфейса в классах, и каждое поле будет определяться селектором, так легче отслеживать изменения.

например.

 username_input=By.CSS_SELECTOR("input[@name='username']")
password_input=By.CSS_SELECTOR("input[@name='password']")
login_button=By.CSS_SELECTOR("input[@value='Login']")
  

вот хорошее введение в шаблон PO