python - 如果在新标签 selenium 中打开链接,如何进一步处理?
问题描述
我正在使用 Python 开发一个 selenium 项目,我正在自动化从https://www.flipkart.com/订购的在线产品。我搜索了一种产品(在我的情况下是蛋白质补充剂)。现在,当我单击该产品时,详细信息现在在一个新选项卡中打开,其中包含购买选项。但我无权访问该选项卡的 DOM,因为我只使用主页。我附上两张图片和代码,以便您明白我的意思。在此处输入图像描述
这是我的代码,我在其中自动化了点击产品的过程-
def select_product(self):
element = self.find_elements_by_css_selector("div[class='_4ddWXP']")
self.refresh()
try :
element[0].click()
except StaleElementReferenceException :
element = self.find_elements_by_css_selector("div[class='_4ddWXP']")
element[0].click()
请告诉我如何进一步进行。我的主要目标是订购该产品。
解决方案
您需要切换到new tab
才能继续进行。下面code
你可以write
一旦你click on product
将登陆你new tab
。
all_handles = driver.window_handles
driver.switch_to.window(all_handles[1])
new tab
会有不同handle
,所以 Selenium 不得不改用new tab
.
推荐阅读
- javascript - Google Apps 脚本 - 表单输入未正确提交
- javascript - 将动态创建的标签移动到select2中的列表底部
- sql - 访问前 N 个查询,其中 N 在另一个表中给出
- python - Python IDLE 如何从编辑器到 shell
- php - Laravel/Lumen Tymon/JWT 通过电话号码和密码
- c++ - 从 STM32CubeIDE 启动 QEMU 模拟器的问题
- javascript - 在 btn 单击时将动态元素添加到 html 时更新淘汰视图模型
- android - 如何从片段 Android 工作室中的文本视图访问数据
- c++ - 如何从不均匀分布的文件中添加字符?
- jquery - 变量中对象的 JQuery 取消绑定事件