Selenium WebDriver в Visual Studio с C#. Я создал объект-драйвер, в котором я использую экземпляр.Selenium Webdriver: выбор пункта меню в многоуровневом меню
Я пытаюсь получить доступ на этом сайте в верхнем меню: http://store.demoqa.com/
Второй элемент меню «Категория продукта», имеет подменю. Я пытаюсь подражать мышке над элементом «Категория продукта», затем выберите и щелкните первый элемент в списке («Аксессуары»).
Это то, что у меня есть до сих пор, собранные несколькими поисками здесь и в других местах. Он работает над нажатием на пункт меню («Аксессуары»). Я вижу, что выбран верхний элемент и что элемент меню «выбран», потому что он слегка отступает, когда он курсирует над ним. Однако оттуда я не могу нажать кнопку Click().
"menu-item-33" - это верхний пункт меню, категория продукта. «menu-item-34» - это пункт меню «Аксессуары».
Actions action = new Actions(FFDriver.Instance);
IWebElement we = FFDriver.Instance.FindElement(By.Id("menu-item-33"));
action.MoveToElement(we).MoveToElement(FFDriver.Instance.FindElement(By.Id("menu-item-34"))).Click().Build().Perform();
Он перемещается к нужному элементу, но функция Click() не работает, поскольку страница не изменяется.
Простите меня, если это слишком мало информации, но я попытался удержать его до кода, который, кажется, является борьбой.
Ничего себе, это сработало. Я думал о попытке найти элементы по-разному из ID, но я не мог понять, почему это изменит ситуацию. Так почему же эта работа, а другая нет? –
И если я использую ваш код и заменяю By.CssSelector на By.Id («menu-item-34»), он не работает. Он даже не находит пункт меню. Но это может быть потому, что поиск по Id отличается от CssSelector? –
Ну, с 'By.Id (" menu-item-34 ")' вы находите 'li' not anchor. Якорь (метка 'a') более точен. Вы также можете попробовать свой код с помощью 'By css = By.CssSelector (« a [href * = 'product-category/accessories'] ");' и это тоже должно работать. – Saifur