如何确保仅在按钮存在的情况下脚本才会单击?

时间:2019-01-29 09:48:32

标签: python-3.x selenium

我正在编写脚本来测试Web门户。但是,我需要将所有协议更改为SMB Server才能进行测试。我需要使脚本只在存在时才单击按钮以更改为SMB服务器,就像它已经处于SMB Server模式时一样,该按钮不存在。

现在,我只编码了该部分,然后单击更改为SMB服务器模式。

这是我单击以更改为SMB服务器模式的代码:

   driver.find_element_by_id("smb_server").click()
    alert=driver.switch_to_alert()
    alert.accept()

这是已更改为SMB服务器模式的html:

 <span class="table-head">
    Current Protocol
    </span>

3 个答案:

答案 0 :(得分:2)

您可以使用findElements代替findElement。这将返回未找到匹配项的空列表,从而可以避免出现异常。

Boolean isAvailable = driver.findElements(By.yourLocator).size() > 0

这是基于一个假设,即该按钮将存在/不存在,并且不会启用/禁用。

答案 1 :(得分:-1)

尝试以下操作(在Java中请更改为相应的语言):

Boolean isPresent = driver.findElements(By.id("your id")).size() > 0;

  if(isPresent){
    <click the button>
  }

答案 2 :(得分:-1)

您可以测试该元素是否存在,然后单击它是否存在

button = driver.find_elements(By.ID, "smb_server")
if button
    button[0].click()