使用selenium python绑定

时间:2016-04-28 23:20:43

标签: python html selenium

我必须使用python selenium绑定在以下HTML代码中找到“必需元素”网页:

    < div id = "xxx">
      < table = "first">
         <tbody>
           <tr>
              <td class = "mmm1">
              <td class = "yyyy1">
                   <table class = "second">
                     <tbody>
                       <tr class = "bbb">
                           <td></td>
                           <td></td>
                           <td></td>
                           <td>
                               < input id = "required element" type="image" onclick = "behavior defined here as a script">
                           </td>
                        </tr>
                       </tbody>
                      </table>
                     </td>
                    </tr>
                  </tbody>
                 </table>

这是我使用selenium的py脚本:

    element_found = browser_open.find_element_by_xpath("//tr/td[contains(@class,'yyyy1')]")

element_table = element_found.find_element_by_class_name(“second”)

我无法找到以“yyyy1”开头的表格元素(第二个)。 上面的element_table行总是在无法找到元素时给出错误。目的是找到=&gt;“必需元素”并对其执行点击操作。

如何在表列的元素中查找表?这张桌子也会成为那个元素的孩子吗?

请在这里帮忙。

1 个答案:

答案 0 :(得分:0)

似乎您可能需要为页面添加一些时间来完全呈现:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

xpath = '//td[@class="yyyy1"]/table[@class="second"]/input[@id="required element"]'
try:
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, xpath))).click()
except TimeoutException:
    print("Required element still could not be found!")

这应该允许等待所需元素最多20秒,然后引发TimeOut异常。

如果元素仍未找到,请告诉我