【问题标题】:Can't find element (findElement) in the Chrome browser using Selenium WebDriver使用 Selenium WebDriver 在 Chrome 浏览器中找不到元素 (findElement)
【发布时间】:2022-05-10 08:52:53
【问题描述】:

我在 Chrome 浏览器中找不到元素(

ng-bind="task.STATE">文档

Selenium 只能在 FireFox 浏览器中找到元素(通过 Selenium IDE)

 driver.findElement(By.xpath("//div[4]/span")).click();

HTML:

<div class="stat-column">
          <h4><!-- <div class="dashboard-tasks-undone">{{numTasks}}</div>  --> <span class="dashboard-tasks-undone-text">Tasks</span></h4>
          <div class="tasks-panel row">
            <!-- ngRepeat: task in tasks --><div class="col-xs-4 tasks-panel-cell ng-scope" ng-repeat="task in tasks" ng-click="kycTaskClick(task)">
              <span class="task-counter ng-binding task-counter-red" ng-bind="task.COUNT" ng-class="{'task-counter-faded': task.COUNT == '0','task-counter-red':task.red}">11</span>
              <span class="task-description ng-binding" ng-bind="task.STATE">Permission</span>
            </div><!-- end ngRepeat: task in tasks --><div class="col-xs-4 tasks-panel-cell ng-scope" ng-repeat="task in tasks" ng-click="kycTaskClick(task)">
              <span class="task-counter ng-binding" ng-bind="task.COUNT" ng-class="{'task-counter-faded': task.COUNT == '0','task-counter-red':task.red}">27</span>
              <span class="task-description ng-binding" ng-bind="task.STATE">Authorised</span>
            </div><!-- end ngRepeat: task in tasks --><div class="col-xs-4 tasks-panel-cell ng-scope" ng-repeat="task in tasks" ng-click="kycTaskClick(task)">
              <span class="task-counter ng-binding" ng-bind="task.COUNT" ng-class="{'task-counter-faded': task.COUNT == '0','task-counter-red':task.red}">95</span>
              <span class="task-description ng-binding" ng-bind="task.STATE">Answers</span>
            </div><!-- end ngRepeat: task in tasks --><div class="col-xs-4 tasks-panel-cell ng-scope" ng-repeat="task in tasks" ng-click="kycTaskClick(task)">
              <span class="task-counter ng-binding" ng-bind="task.COUNT" ng-class="{'task-counter-faded': task.COUNT == '0','task-counter-red':task.red}">47</span>
              <span class="task-description ng-binding" ng-bind="task.STATE">Documents</span>
            </div><!-- end ngRepeat: task in tasks --><div class="col-xs-4 tasks-panel-cell ng-scope" ng-repeat="task in tasks" ng-click="kycTaskClick(task)">
              <span class="task-counter ng-binding" ng-bind="task.COUNT" ng-class="{'task-counter-faded': task.COUNT == '0','task-counter-red':task.red}">14</span>
              <span class="task-description ng-binding" ng-bind="task.STATE">Identity</span>
            </div><!-- end ngRepeat: task in tasks --><div class="col-xs-4 
          </div>
        </div>

【问题讨论】:

  • 您是否在 selenium IDE 中执行类似的 CLICK 操作?您是否尝试过 Selenium IDE 识别的其他定位器?

标签: selenium selenium-webdriver automated-tests selenium-ide


【解决方案1】:

你可以试试下面的 xpaths

//span[contains(text(),'Documents')]

//div[@class='stat-column']/div/div[4]/span[2]

//div[@class='stat-column']/div/div[4]/span[@ng-bind='task.STATE']

还有更多的可能..

谢谢

【讨论】:

  • 谢谢!主要问题是调整窗口大小。仪表板滑下,由于某种原因 selenium 找不到元素。
  • 好的..很高兴知道解决了问题..一般我会在启动适合屏幕的浏览器后使用最大化..这样的问题会更少
  • 1) 关于第一个 xpath: //span[contains(text(),'Documents')] -> 请确保我们在 DOM 中没有任何“文档”文本 2) 另外你可以像这样使用 xpath: //span[@ng-bind='task.STATE' and .//text()[contains(.,"Documents")]]
猜你喜欢
  • 1970-01-01
  • 2017-07-17
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 2017-01-13
相关资源
最近更新 更多