#java #selenium #xpath
#java #selenium #xpath
Вопрос:
У меня есть следующий select. Я хочу выбрать указанные элементы с помощью Java Selenium. Я пробовал это, но ни один из них не работал, я всегда получал нормальное использование, если я нажимаю на элемент, его
нет такого элемента: невозможно найти элемент: …
Вот мой код (ы):
driver.findElement(By.xpath("//option[@value="2498847"]")).click();
driver.findElement(By.xpath("/html/body/form/div/center/table/tbody/tr[2]/td[1]/font/select/option[2]")).click();
driver.findElement(By.xpath("//html/body/form/div/center/table/tbody/tr[2]/td[1]/font/select/option[2]")).click();
Устал от класса Select:
Select selector = new Select(this.driver.findElement(By.xpath("//select")));
selector.selectByVisibleText("Harris_SF_1");
Что я делаю не так?
Или можно имитировать щелчок javascript и вызвать этот скрипт с помощью Selenium?
HTML:
<select size="10" name="DropDown" onchange="fSaveSearch(document.Form1.DropDown);">
<option value="1715424">1960 cypress creek N</option><!---this shows the saved searches list--->
<option value="2164877">Broker Closing Search</option>
<option value="2498847">Harris_SF_1</option>
<option value="1715426">Spring East</option>
<option value="1715428">Spring Klein</option>
<option value="1715429">Spring Klein Tomball</option>
<option value="1715427">Spring NE</option>
<option value="1715432">The Woodlands</option>
</select>
Конечная цель — имитировать щелчок по опции с определенным видимым текстом или значением.
Редактировать: iFrame сайта по умолчанию не тот, где находятся эти элементы / js writter. Если я изменю iframe в консоли Chrome, это сработает, но
driver.switchTo().frame("SearchFrame");
Я что-то неправильно меняю в работе?
Комментарии:
1. Что делает функция javascript onchange? Вы пытались найти атрибут select по имени?
2. Когда вы открываете страницу в Google Chrome, щелкните правой кнопкой мыши целевой элемент, а в разделе инструменты разработки щелкните правой кнопкой мыши выделенный HTML-код, выберите Копировать -> Копировать XPath, как выглядит строка XPath?
3. /html/body/form/div/center /table /tbody/tr[2] / td[1]/font /select /option[3] это предложенный chrome xpath.
4. Итак, элемент расположен под рамкой справа.. Итак, метод switchToFrame выдает какое-либо исключение? И почему бы вам не использовать
name
selector..findElementByName('DropDown')
Ответ №1:
Спасибо, Мадан, ваш комментарий решил мою проблему. Но это сработало только после того, как я переключился на Defaultcontent, а затем переключился на нужный мне фрейм!
driver.switchTo().defaultContent();
затем переключитесь на нужный мне фрейм:
driver.switchTo.frame("Frame_ID");