如何在RIDE中单击具有JavaScript on click事件的行

时间:2018-10-15 10:58:09

标签: selenium selenium-webdriver xpath webdriver robotframework

我试图通过使用带有Selenium2库的Robot Frame Work在RIDE IDE中单击具有javascript onclick函数的行。

<tr class="lstrow" onclick="javascript:selectItem(this);" onmouseover="javascript:this.className='rowhover';" onmouseout="javascript:this.className='row';">

当我在以下xpath处执行click事件时,它表示未找到路径中的元素。

  

// * [@ id =“ myList”] / tbody / tr [0]

通过检查元素,我可以确认此行在其中。还尝试将“ rowhover”类指向此xpath,但仍未成功。甚至不确定我是否真的可以在特定的xpath中选择特定的类。

  

// * [@ id =“ myList”] / tbody / tr [0] [包含(@ class,'rowhover')] //不确定是否正确

1 个答案:

答案 0 :(得分:1)

所需元素是启用了JavaScript的元素,因此您需要引发 wait ,并且可以使用以下两种解决方案之一/两者(合并):

  • Python解决方案

    • Wait Until Element Is Visible

      Wait Until Element Is Visible    xpath=//tr[@class="lstrow"]    20  seconds
      Set Focus To Element    xpath=//tr[@class="lstrow"]
      # invoke click
      
    • Wait Until Element Is Enabled

      Wait Until Element Is Enabled    xpath=//tr[@class="lstrow"]    20  seconds
      Set Focus To Element    xpath=//tr[@class="lstrow"]
      # invoke click
      
  • 您可以在Robotframework: Selenium2Lib: Wait Until (…) Keywords

    中找到有关Wait Until Element Is VisibleWait Until Element Is Enabled的详细讨论
  • 参考:Selenium2Library