У меня есть элемент на моей странице следующим образом. Как я могу использовать Selenium для получения текста «Добавить нового участника».Использование Selenium для поиска элемента HTML с классами внутри href
<a ng-if="userCanEdit" class="btn btn-primary ng-scope" ui-sref="orgs-add" href="#/orgs/add">
<i>Add New Member</i>
</a>
Я попробовать этот код ниже, но он не работает
System.out.println(driver.findElement(By.cssSelector("a[href='#/orgs/add']")).getText());
Кроме того, моя консоль JavaScript, вычисляет выражение, ('a[href="#/orgs/add"]')
правильно.
РЕДАКТИРОВАТЬ: У меня только что произошел сбой, когда я попробую приведенный выше код.
*** Element info: {Using=css selector, value=a[href='#/orgs/add']}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:368)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:465)
at org.openqa.selenium.By$ByCssSelector.findElement(By.java:430)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:360)
at hello.validate(hello.java:101)
at hello.main(hello.java:60)
так, что выход вы получаете от кода, который вы упомянули? –
Ваш HTML говорит «#/members/add», но ваш cssSelector использует «#/orgs/add». Любой случай, когда вы сделали опечатку - и вам просто нужно использовать «#/members/add»? –
@ СтоянБеров, нет, это не причина. Я только что редактировал выше. Я пытался опубликовать образец. – learningboy