Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 从通知登录消息获取文本_Selenium_Selenium Webdriver - Fatal编程技术网

Selenium 从通知登录消息获取文本

Selenium 从通知登录消息获取文本,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我有一个Angular应用程序,我想使用SeleniumWeb驱动程序和Java来测试它。 成功或不成功的用户登录通知消息显示在网页中后: <div class="overlay-container"> <div id="toast-container" class="toast-top-right toast-container"> <div toast-component="

我有一个Angular应用程序,我想使用SeleniumWeb驱动程序和Java来测试它。 成功或不成功的用户登录通知消息显示在网页中后:

<div class="overlay-container">
   <div id="toast-container" class="toast-top-right toast-container">
      <div toast-component="" class="toast-error ngx-toastr ng-trigger ng-trigger-flyInOut" style="opacity: 1;">
         <!----><button aria-label="Close" class="toast-close-button ng-tns-c11-11 ng-star-inserted" style=""><span class="ng-tns-c11-11" aria-hidden="true">×</span></button><!----><!----><!---->
         <div aria-live="polite" role="alertdialog" class="toast-message ng-star-inserted" aria-label="Logon failure: unknown user name or bad password." style=""> Logon failure: unknown user name or bad password. </div>
         <!---->
      </div>
   </div>
</div>
对于第二次
findElement
,我得到false和NPE

您知道如何解决此问题吗?

isDisplayed()
返回false。这可能是因为您正在寻找(等待)DOM中元素的存在。这并不意味着它
isDisplayed()
。这有点复杂,有一个很好的答案,但在求和中,它的大小必须是非零的,并且必须设置一些属性才能将其视为显示。土司很可能位于DOM中,但尚未完全呈现以被视为已显示

NPE的第二个问题可能是您获取toast元素并对其执行findElement,这意味着xpath将相对于toast元素执行。这意味着xpath实际执行为:

//*[@id='toast-container']/.//*[@id='toast-container']/div/div
这不是你真正想要的。您可能只想执行以下操作:

WebElement element = failedLoginWebElement.findElement(By.xpath("/div/div"));

你能分享你的网址吗?这是一个内部系统。
WebElement element = failedLoginWebElement.findElement(By.xpath("/div/div"));