我正在使用Python Selenium使用Firefox将数据从网页保存到电子表格中,但是该页面会不断更新数据,从而导致与过时的元素有关的错误。我该如何解决?
我试图关闭JavaScript,但这似乎无能为力。任何建议都很棒!
答案 0 :(得分:0)
如果您想在特定时间将数据保存在页面上,则可以
WebDriver.page_source
函数示例代码:
driver.get("http://seleniumhq.org")
with open("mypage.html", "w") as mypage:
mypage.write(driver.page_source)
mypage.close()
driver.get(os.getcwd() + "/" + (mypage.name))
#do what you need with the page source
另一种方法是在需要与元素进行交互的任何地方使用WebDriver.find_element函数。
所以而不是
myelement = driver.find_element_by_xpath("//your_selector")
# some other action
myelement.getAttribute("interestingAttribute")
您需要与元素进行交互时,执行查找:
driver.find_element_by_xpath("//your_selector").getAttribute("interestingAttribute")
甚至最好选择Explicit Wait所需的元素:
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//your/selector"))).get_attribute("href")