#selenium-webdriver
#selenium-webdriver
Вопрос:
Я занят использованием Selenium в отчетах SSRS. Я борюсь с определенным элементом в меню, с которым я не могу взаимодействовать
Вот фрагмент html.
</div><div class="DisabledButton">
<a title="Excel" class="ActiveLink" onclick="$find('ctl31').exportReport('EXCEL');" href="javascript:void(0)" style="padding: 3px 8px 3px 32px; display: block; white-space: nowrap; text-decoration: none;">Excel</a>
</div>
Я попытался использовать следующее, чтобы найти элемент:
* Использование getcssSelector
* Использование linkText
Есть ли решение для этого?
Комментарии:
1. Пробовал Xpath. Путь xpath, который я получаю при копировании, приведен ниже: //*[@id=»ctl31_ctl05_ctl04_ctl00_Menu»]/div[5]/a . Перед добавлением его в параметр я избежал кавычек, что изменило xpath на приведенный ниже driver.findElement(By.xpath(«//*[@id=»ctl31_ctl05_ctl04_ctl00_Menu»] / div[5] /a»)).click(); К сожалению, это такне выдает мне ошибку, но также ничего не делает. Спасибо за помощь до сих пор
2. Что происходит при использовании
By.LinkText("Excel")
? Пожалуйста, опубликуйте код, который вы пробовали, и каков был результат … сообщение об ошибке и т. Д.3. Есть ли какие-либо исключения при вашей попытке??
Ответ №1:
Шаги по получению xpath из chrome:
- Щелкните правой кнопкой мыши по элементу на веб-странице и нажмите проверить
- HTML для элемента должен быть выделен
- Щелкните правой кнопкой мыши на выделенном разделе
- Наведите курсор мыши на «копировать»
- Нажмите Копировать xpath
Затем, чтобы найти элемент, используйте:
WebElement element = driver.findElement(By.xpath("Paste Xpath here"));
Чтобы щелкнуть по нему, затем:
element.click();
Комментарии:
1. Xpath, который я получаю, приведен ниже. //* [@id=»ctl31_ctl05_ctl04_ctl00_Menu»]/ div[5]/a, который, к сожалению, не работает
2. Вам нужно удалить двойные кавычки в xpath и заменить их одинарными кавычками — //*[@id= ‘ctl31_ctl05_ctl04_ctl00_Menu’]/div[5]/a
3. Ошибки не выдает, но и ничего не делает. Я использовал element.getText(); чтобы подтвердить правильность элемента. Метка печатается правильно. Поэтому я считаю, что элемент правильный, но он не хочет нажимать на него.
4. попробуйте: element.SendKeys(«»); element.click();
5. element.SendKeys(«»); element.click(); отлично сработал!