Python Selenium查找元素

时间:2018-06-28 09:07:45

标签: python selenium

我需要您的帮助以解决一个奇怪的问题。 我正在使用Selenium库,但此指令存在问题:

driver.find_element_by_name('longitude')

有时它可以工作,我可以找到名称为经度的元素,有时即使网页中没有任何变化也找不到。

3 个答案:

答案 0 :(得分:0)

在找到元素之前使用等待方法:- 例如。

from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID,"element")))

答案 1 :(得分:0)

使用function deleteRecord(e) { var var1 = $(e).data("id"); 加载页面,然后找到Web元素 有时,如果页面未加载,可能会抛出网络元素不可用的情况 因此请使用time.sleep(seconds)

答案 2 :(得分:0)

您可以隐式等待:

类似:

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
driver.find_element_by_name('longitude')

OR

明确等待

WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.NAME,"longitude"))) 

为此,您必须导入以下内容:

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

请注意,您不应将隐式等待显式等待混合使用,否则可能会导致不可预测 等待超时。