Можно получить ссылку в selenium, используя атрибут href

#selenium #selenium-webdriver #automation #ui-automation #browser-automation

#selenium #selenium-веб-драйвер #автоматизация #пользовательский интерфейс-автоматизация #браузер-автоматизация #selenium-webdriver

Вопрос:

Я попытался перейти по ссылке, чтобы начать адаптацию, но не смог.

 //string webElement = driver.FindElement(By.XPath("/html/body/div/div/div/a")).GetAttribute("href");
var tes = driver.FindElement(By.XPath(@"/html/body/div/div/div/a")).GetAttribute("href");
var web2 = driver.FindElement(By.XPath(@"//a[contains('saa',@href)"));
var web3 = driver.FindElement(By.XPath(@"//a[text()='saa')]/@href"));
var tes2 = driver.FindElement(By.XPath(@"//a[text()='saa')]/@href")).GetAttribute("href");
  

Начать адаптацию

Мне нужно нажать на Onboarding, который указывает на ссылку, как показано в href в приведенном выше HTML-коде.

Пожалуйста, подскажите мне, где я терплю неудачу и что я могу сделать. Я новичок в селене. Заранее благодарю.

Комментарии:

1. можете ли вы опубликовать свой HTML — код , а также трассировку стека ошибок ?

2. Вам нужно рассказать более подробно, что произошло, когда вы это попробовали? вы также должны опубликовать HTML-код и сообщение об ошибке / исключении.

3. @Adhikari, использование относительного пути для такого тега — очень плохой подход, попробуйте использовать предложенный один раз по порядку с идентификатором, именем, классом, затем относительный путь с некоторым тегом с идентификатором

Ответ №1:

Лучший способ — держаться подальше от xpaths, поскольку они жесткие и работают не во всех браузерах. Приведенное ниже было бы лучше.

 var tes2 = driver.FindElement(By.cssSelector("a#idOfElement")).getAttribute("href");
  

или

   var tes2 = driver.FindElement(By.cssSelector("a.classnameOfElement")).getAttribute("href");