我有一个 Selenium 脚本(Python),它点击回复按钮使anonemail类出现。anonemail 类出现的时间各不相同。因此,我必须使用 sleep 直到元素出现。
我想等到课程出现而不是使用睡眠。我听说过等待命令,但我不知道如何使用它们。
这是我迄今为止所拥有的:
browser.find_element_by_css_selector(".reply-button").click()
sleep(5)
email=browser.find_element_by_css_selector(".anonemail").get_attribute("value")
Run Code Online (Sandbox Code Playgroud) python selenium selenium-webdriver webdriverwait expected-condition
我正在尝试将 cookie 从 selenium 导出的 cookie 加载到 Python 中的请求会话中,但是当我这样做时会返回以下错误:“'list' 对象没有属性 'extract_cookies'”
def load_cookies(filename):
with open(filename, 'rb') as f:
return pickle.load(f)
initial_state= requests.Session()
initial_state.cookies=load_cookies(time_cookie_file)
search_requests = initial_state.get(search_url)
Run Code Online (Sandbox Code Playgroud)
我在任何地方看到这都应该有效,但是我的 cookie 是一个字典列表,这就是我理解的所有 cookie,以及为什么我认为这适用于 Selenium。但是由于某种原因它不适用于请求,在这方面的任何和所有帮助都会非常好,感觉就像我错过了一些明显的东西!
已使用以下方法从 Selenium 转储 Cookie:
with open("Filepath.pkl", 'wb') as f:
pickle.dump(driver.get_cookies(), f)
Run Code Online (Sandbox Code Playgroud)
cookie 的一个例子是(稍微混淆):
[{'domain': '.website.com',
'expiry': 1640787949,
'httpOnly': False,
'name': '_ga',
'path': '/',
'secure': False,
'value': 'GA1.2.1111111111.1111111111'},
{'domain': 'website.com',
'expiry': 1585488346,
'httpOnly': False,
'name': '__pnahc',
'path': '/',
'secure': False,
'value': '0'}]
Run Code Online (Sandbox Code Playgroud)
我现在已经按照下面的答案设法加载了 cookie,但是 cookie 似乎没有正确加载,因为它们不记得任何东西,但是如果我在浏览 Selenium 时加载 cookie,它们工作正常。