我必须使用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;“必需元素”并对其执行点击操作。
如何在表列的元素中查找表?这张桌子也会成为那个元素的孩子吗?
请在这里帮忙。
答案 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异常。
如果元素仍未找到,请告诉我