Я пытаюсь найти кнопку (Preview/Edit) на веб-странице, используя этот код, где он нажмет кнопку в соответствии с текстом аргумента (buttonName).Поиск скрытого/отключенного элемента с помощью Xpath
Страница ведет себя (когда страница загружается, она показывает кнопку «изменить»). При нажатии кнопки редактирования, то он показывает кнопку 'Предварительный просмотр' и наоборот}
WebBrowserElement parentElement = waitForElement(By.xpath("//div[@class='serviceHeaderInner']"));
String s = parentElement.toString();
if (s.contains(buttonName) && (parentElement.waitForElement(By.xpath(".//a[.='" + buttonName + "']"))).isDisplayed()) {
WebBrowserElement buttonElement = parentElement.waitForElement(By.xpath(".//a[.='" + buttonName + "']"));
buttonElement.click();
} else {
debugPrintln(" -> Invalid buttonName '"+ buttonName +"'");
}
В тестовом случае я пытаюсь передать,
'Предварительный просмотр'
'Preview'
'Edit'
'Edit'
Как при загрузке страницы, будет Кнопка «Редактировать» и передавая два аргумента «Предварительный просмотр» в тестовом примере .. он переходит непосредственно в другое и т. Д. Более того, передавая аргумент «Редактировать», он также переходит в часть else. Я думаю, что что-то не так с условием «если». Но чтобы сделать более динамичным «Он должен проверить класс, который содержит„инвалид“текст согл к снимкам, так что эта проблема может быть предотвращена в первой точке
Я отредактировал вопрос, надеюсь, что это поможет. Благодарю. – Prago
Это имеет смысл. Где указано название кнопки? В этом случае, похоже, s никогда не будет содержать имя кнопки, потому что оно просто указывает на элемент div и не заботится о том, что находится под ним. –
Я пытаюсь установить условие в том, блокирует ли parentElement некоторый текст и пытается преобразовать в строку и найти, содержит ли он текст при передаче имени buttonName. В дополнение к этому, пытаясь определить, отображается ли эта кнопка или нет. Имя кнопки объявляется внутри блока if. – Prago