小编use*_*857的帖子

Selenium Webdriver - 在if语句中使用isDisplayed()不起作用

我正在创建一个脚本,涉及搜索记录,然后更新记录.在搜索屏幕上,用户可以选择查看高级搜索选项.要切换显示或隐藏高级搜索,请使用一个按钮进行控制.

<a title="Searches" href="javascript:expandFilters()"><img border="0" align="absmiddle" alt="Advanced" src="****MASKED URL****"></a>
Run Code Online (Sandbox Code Playgroud)

搜索按钮显示或隐藏高级搜索时属性的唯一区别是img src:

当隐藏高级搜索时,IMG src以"/Styles/_Images/advanced_button.jpg"结尾,当高级搜索可见时,IMG src以"/Styles/_Images/basic_button.png"结尾

当我打开页面时,有时会显示高级搜索选项,有时则不会.我想要搜索的值出现在"高级"部分中,因此为了使我的脚本正常工作,我添加了一个IF语句.

<input type="text" value="" maxlength="30" size="30" name="guiSystemID">
Run Code Online (Sandbox Code Playgroud)

IF语句查找我需要输入数据的字段,如果该字段不存在则表示高级选项不可见我需要单击按钮以展开搜索选项.

我创建了以下IF语句.

     if (!driver.findElement(By.name("guiSystemID")).isDisplayed()) {
         driver.findElement(By.cssSelector("img[alt='Advanced']")).click();
     }
Run Code Online (Sandbox Code Playgroud)

当我运行脚本并展开高级搜索时,脚本会成功运行.但是,当我运行脚本并且未展开高级搜索时,脚本失败,告诉我它找不到对象"guiSystemID".这是令人沮丧的,因为如果它找不到它,那么我希望脚本继续,进入IF语句的True路径.

有没有人有任何建议,我怎么能评估该字段是否出现而没有脚本失败,因为它找不到该字段.

提前致谢

西蒙

selenium webdriver

8
推荐指数
2
解决办法
6万
查看次数

标签 统计

selenium ×1

webdriver ×1