- В верхней части этой страницы есть баннер, который блокирует элемент «account». Вам нужно добавить шаг теста, где вы нажимаете, чтобы сначала «отклонить» этот баннер.
driver.FindElement(By.LinkText("Dismiss").Click();
Скрипт в Visual Studio всегда будет двигаться быстрее, чем браузер, поэтому вам нужно добавить в скрипт шаги, в которых вы ожидаете загрузки страницы, прежде чем нажимать на новые элементы.
Легкоспособ сделать это - использовать статический метод ожидания, подобный следующему:
Task.Delay(2000).Wait();
Вам также необходимо добавить: using System.Threading.Tasks;
'2000' - это количество миллисекунд, которое вы хотитеwait.
Более динамичный способ ожидания - сначала создать метод wait, а затем вызывать этот метод всякий раз, когда вы хотите wait
, чтобы произошло что-то конкретное (в этом случае ожидание ссылки на аккаунтclickable).
Создание метода динамического ожидания и его использование выглядит следующим образом:
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("By.LinkText("My Account"))).Click();
Для этого метода вам также необходимо: using OpenQA.Selenium.Support.UI;