selenium - Katalon 执行嵌套的 Selenium WebDriver 发现
问题描述
我正在尝试在 Katalon Studio<li>
中指定所有内容。<ul>
我正在通过 Selenium WebDriver 尝试这个。我有这样的代码:
// login with valid account
WebUI.callTestCase(findTestCase('ValidLogin'), [('shouldCloseBrowser') : false], FailureHandling.STOP_ON_FAILURE)
// get the driver
WebDriver driver = DriverFactory.getWebDriver()
// Loop over selection of each company, and assert that we land on respective dashboard
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS)
WebElement companyListContainer = driver.findElement(By.id('companyList'))
// finds this element OK
List<WebElement> companies = companyListContainer.findElements(By.xpath('.//li'))
// this failed
for (int i = 1; i <= companies.length; i++) {
// click the test object
driver.findElement(By.xpath('//ul[@id="companyList"]/li[' + i + ']')).click()
// implicitly wait 3 seconds
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS) // we better be at the Dashboard page
// go back to "Company Select"
WebUI.click(findTestObject('a_Company Select'))
// wait three seconds again
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS)
}
并且由于某种原因,即使<li>
页面上有 s List<WebElement>
,即使companyListContainer
不是,它也是 null,并且包含这些元素。我该如何解决?
的HTML
好像 :
<ul id="companyList" class="list-group">
<li class="list-group-item clickable " data--name="EzDine C2 - Michael" data--id="302">
EzDine C2 - Michael
<span class="list-check"><i class="fa fa-check text-success" aria-hidden="true"></i></span>
</li>
<li class="list-group-item clickable " data--name="EzDine Comp3 -Hos" data--id="303">
EzDine Comp3 -Hos
<span class="list-check"><i class="fa fa-check text-success" aria-hidden="true"></i></span>
</li>
<li class="list-group-item clickable " data--name="Test EZDine V2 Comp1" data--id="301">
Test EZDine V2 Comp1
<span class="list-check"><i class="fa fa-check text-success" aria-hidden="true"></i></span>
</li>
</ul>
解决方案
错误是因为最愚蠢的原因(不知何故,Katalon 没有告诉我):我试图访问length
一个列表;/* 该成员不存在java.util.List
!*/ 我改为size()
并且它工作。
Katalon 确实有缺陷,因为没有提醒我这一点。/* 他们说null
没有被定义,但不是说我试图访问一个不存在的成员 */
推荐阅读
- controller - Manjaro 和 DualShock 3
- python-3.x - create new dataframe based upon max value in one column and corresponding value in a second column
- terraform - 如何引用由 Terraform 模块创建的资源
- wcf - VS2017 中的 WCF 服务错误 400 错误请求
- javascript - 如何在 Pinterest、Twitter 和 facebook Javascript 文件中启用 gzip 压缩并利用浏览器缓存。
- kotlin - 如果最后一个操作以异常结束,Kotlin 协程立即给出异常
- ajax - 使用随机会话号保护 web api
- ubuntu-16.04 - Skylake 硬件亮度变化过于精细
- mysql - MySql 下拉过滤器选择 NULL
- git - Merge a remote branch on Heroku to Heroku Master to trigger a build