找不到按钮元素,硒,Python

时间:2020-06-10 23:04:25

标签: python selenium web

已经尝试通过xpath,class_name,name,tag_name进行所有操作!但是找不到此元素,则html代码会像这样。

<button class ="btn btn-submit" type="submit" class="btn btn-submit" name="submitBtn">Crear cuenta</button>

我不知道为什么找不到元素,这里是我的代码尝试查找元素的示例

self.driver.find_element_by_xpath("//*[@id='app']/div/footer/button").click()

1 个答案:

答案 0 :(得分:0)

由于您通过的网站有一个加载屏幕,因此您要获取的元素不可用于交互。

为此,您可以使用Selenium Web驱动程序的“预期条件”。

这里是使用方法的使用示例。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
...
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "dtListaEntidade")))
# do your stuff with elements

在我的示例中,我要抓取的元素是dtListaEntidade

  1. 我告诉webdriver等待该元素的存在 10毫秒
  2. 检查元素是否可用
  3. 再次执行1。

这要等待10秒,然后抛出TimeoutException,除非它发现要在10秒内返回的元素。

默认情况下,WebDriverWait每500毫秒调用ExpectedCondition,直到成功返回。

这是selenium docs waits

中的文档