Я заметил, что когда я использую веб-драйвер селена для взаимодействия с элементами на веб-странице, мой код становится недоступным для чтения, потому что я использую много XPath-ов, чтобы найти эти элементы. Например:
driver.FindElement(By.XPath("//div[@class='login']//a[@href='#']"), Globals.TIMEOUT).Click();
var loginField = driver.FindElement(By.XPath("//div[@id='login_box']//input[@name='login_name']"));
jdriver.ExecuteScript("arguments[0].setAttribute('value', '" + login + "')", loginField);
var passwordField = driver.FindElement(By.XPath("//div[@id='login_box']//input[@name='login_password']"));
jdriver.ExecuteScript("arguments[0].setAttribute('value', '" + password + "')", passwordField);
driver.FindElement(By.XPath("//div[@id='login_box']//input[@type='submit']")).Click();
driver.FindElement(By.XPath("//div[@class='nameuser']"), Globals.TIMEOUT);
Я думал, что могу поместить значения XPath в константы, но очень полезно видеть фактический XPath элемента при чтении кода. Но с другой стороны, когда XPath какого-либо объекта изменяется, я должен изменить его во всех местах, где он используется.
Так что является лучшим решением для этой проблемы?