Я пытаюсь запустить тест в 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'"
Вы также можете попробовать что-то вроде:
driver.findElement(By.xpath("//div[@class='menu-normal'][2]")).click();
//здесь [2] - номер позиции меню-нормальный на странице. Предположим, что есть 4 вкладки с одним классом, и вы хотите нажать на второй, тогда вы можете использовать вышеприведенный код.
Если это не помогло, поделитесь своим html-кодом.
я бы попробовал
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();