无法使用selenium和python找到引用的ID

时间:2018-05-02 12:59:57

标签: python-3.x selenium selenium-webdriver selenium-chromedriver

我正在尝试从网站找到ID为(search2)的搜索框。我已经能够使用以下代码成功登录网站。

import requests
from tqdm import tqdm
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(executable_path=r'C:\chromedriver_win32\chromedriver.exe', chrome_options=options)
driver.implicitly_wait(30)
tgt = "C:\\mypath"
profile = {"plugins.plugins_list": [{"enabled":False, "name":"Chrome PDF Viewer"}],
    "download.default_directory" : tgt}
options.add_experimental_option("prefs",profile)
print(options)
driver.get("http://mylink.com/")
user=driver.find_element_by_id("username")
passw=driver.find_element_by_id("password")
user.send_keys("abc@xyz.com")
passw.send_keys("Pwd")
driver.find_element_by_xpath('/html/body/div[2]/div/div/div[2]/form/div[3]/button').click()
page=driver.find_element_by_id("search2")
print(page)

这段代码完美地运行到这里,但是当我在下面添加以下内容时,我收到错误

page.send_keys("abc")

我得到的错误如下。

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

我在这里要做的是登录网站并搜索一些项目并下载结果。我已经尝试使用代码中提到的隐式等待选项。任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

添加下面的代码就可以了。当程序继续运行下一步时,必须让当前线程休眠。

time.sleep(5)

谢谢大家。