xpath работает в записи селена, но не запускается в Eclipse

0

Я пытаюсь запустить тест в Eclipse, который ранее был записан в Selenium. Я смог заставить его работать в Selenium, используя XPath. Однако в Eclipse я получаю ошибку NoSuchElement. Я пытаюсь щелкнуть вкладку на странице, проблема в том, что вкладки не указаны в виде кнопок, но они фактически находятся в таблице. Вот строка, которую я сейчас на месте.

driver.findElement(By.xpath("(//div[@onclick=\"parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'\"])")).click();

Вот что я показываю, когда проверяю элемент. Все вкладки перечислены как меню-нормальное, единственное различие находится в метке пути.

div class="menu-normal" onclick="parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'"
Теги:
xpath
selenium

2 ответа

0

Вы также можете попробовать что-то вроде:

driver.findElement(By.xpath("//div[@class='menu-normal'][2]")).click();

//здесь [2] - номер позиции меню-нормальный на странице. Предположим, что есть 4 вкладки с одним классом, и вы хотите нажать на второй, тогда вы можете использовать вышеприведенный код.

Если это не помогло, поделитесь своим html-кодом.

  • 0
    Похоже, что div находится внутри файла .jsp, который загружен в основной HTML. Может ли это быть там, где ссылка разрывается, когда я пытаюсь выбрать ее с помощью driver.findElement?
  • 0
    Это также код внутри тега формы. <td> <div class = menu-normal onClick = "parent.frames.contentFrame.location = '/ messaging / maintfList.jsp? clearUIPath = true & uiPathLabel = Forms'"> Формы </ div> </ td>
0

я бы попробовал

driver.findElement(By.cssSelector("div[onclick='parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms']")).click();

избегая того, что ему нужно в java.

xpath - очень неэффективный способ найти вещи, и почти всегда есть лучший способ сделать это. CssSelector в этом случае может найти то, что вы ищете.

Изменение: я просмотрел документацию по Java, попробуйте эту строку вместо

driver.findElement(By.cssSelector("div[onclick=\"parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'\"]")).click();
  • 0
    Я получаю сообщение об ошибке, показывая, что это неверная или недопустимая строка, когда я вставил вашу строку. Я пытался добавить несколько разных вещей, чтобы заставить его работать, но безуспешно. Я довольно новичок в этом. Что-нибудь еще, что я должен изучить или попробовать?
  • 0
    Я не знаю Java (я ac # разработчик), но я предполагаю, что что-то должно быть экранировано в строке. Попробуйте поставить обратную косую черту перед одинарными кавычками.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню