我正在try 从网页(https://www.educacion.gob.es/teseo/irGestionarConsulta.do)获取数据.它在条目处有一个验证码,我手动求解并将其移动到结果页面. 如果我使用"返回"按钮of the browser到达初始页面,则会发生从结果页面返回到条目页面does not modify the captcha的情况;但如果我使用Selify的WebDriver的driver.back()指令,有时验证码会被修改--这是我最好避免的.

显然:我希望从Selify访问DOM window (the browser),而不是访问文档(或html中的任何元素),并将Alt+Arrow_Left键发送到浏览器(窗口).

显然,这不能用以下方式来完成:

from selenium.webdriver import Firefox
from selenium.webdriver.common.keys import Keys

driver = Firefox()
driver.get(url)
xpath = ???
driver.find_element_by_xpath(xpath).send_keys(Keys.ALT, Keys.ARROW_LEFT)

因为send_keys连接到焦点上的元素,而我的目标是DOM窗口,而不是文档的任何特定元素.

我也try 过ActionChains:

from selenium.webdriver.common.action_chains import ActionChains

action = ActionChains(driver)
action.key_down(Keys.LEFT_ALT).key_down(Keys.ARROW_LEFT).send_keys().key_up(Keys.LEFT_ALT).key_up(Keys.ARROW_LEFT)
action.perform()

这也不起作用(我已经try 了几种组合).文档指出,key_down/up需要一个元素来发送键,如果没有键(默认设置),则该元素是当前关注的元素.因此,这里同样存在如何专注于窗口(浏览器)的问题.

我考虑过使用鼠标控件,但我假设它将是相同的:我知道如何使鼠标到达文档中的任何元素,但我想到达窗口/浏览器.

我曾想过通过driver.current_window_handle来确定目标元素,但也徒劳无功.

selenium能做到这一点吗?如果是这样的话,是如何做到的呢?其他图书馆可以做到这一点吗,也许是吹笛人或剧作家?

推荐答案

try 使用JavaScriptExecutor-driver.execute_script("window.history.go(-1)")

Python相关问答推荐

Pydantic 2.7.0模型接受字符串日期时间或无

Django管理面板显示字段最大长度而不是字段名称

使用新的类型语法正确注释ParamSecdecorator (3.12)

如何让剧作家等待Python中出现特定cookie(然后返回它)?

使用索引列表列表对列进行切片并获取行方向的向量长度

在Wayland上使用setCellWidget时,try 编辑QTable Widget中的单元格时,PyQt 6崩溃

Pre—Commit MyPy无法禁用非错误消息

SQLAlchemy Like ALL ORM analog

移动条情节旁边的半小提琴情节在海运

python中字符串的条件替换

使用Python从URL下载Excel文件

Plotly Dash Creating Interactive Graph下拉列表

如何更改groupby作用域以找到满足掩码条件的第一个值?

matplotlib + python foor loop

搜索按钮不工作,Python tkinter

如何删除重复的文字翻拍?

从一个df列提取单词,分配给另一个列

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

504未连接IB API TWS错误—即使API连接显示已接受''

Pandas 数据框自定义排序功能