python - 在 Python/Selenium 中将焦点更改为新窗口
问题描述
就像标题所说的那样,我无法使用“driver.switch_to_window”让我的代码专注于一个新窗口。
我的任务是: 单击父页面上的按钮>出现新窗口>单击新窗口上的“接受”按钮并继续其余代码
driver.get("https:testpage.com/")
driver.find_element_by_xpath("/html/body/div[1]/div[1]/main/div/div/div/div[2]/ul/li[1]/button").click()
#here the window appears
time.sleep(2)
driver.switch_to_window("windowName")
driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[3]/button[2]").click() #here nothing happens
解决方案
您可以尝试获取页面源,以便确定驱动程序是否已切换:
html_source = browser.page_source
它可能已切换,但您的元素未加载或在 iframe 中。如果您的元素存在,那么您可以尝试使用不同的相对 XPath,例如找到最近的 id 并从中找到您的元素:
//div[@id='someid']//button[text()='someText']
我不使用绝对 XPath,因为我认为它们太脆弱了。
推荐阅读
- xamarin.forms - 以 Xamarin 形式缩放图像
- ruby-on-rails - Postgresql/rails - 加入不同的值或只为不同的值创建重复的行
- javascript - 如何使用 Barba.js 从单个页面进行多个页面转换
- javascript - 在 github repo 的 Packages 部分下显示 npm 包的链接
- mysql - MySQL连接三个表并显示空值
- node.js - 如何从nodejs中的CSVTOJSON中仅提取某些字段?
- mysql - 如何将此复杂查询转换为等效的 Django ORM
- sql - 从动态链接服务器存储过程返回值
- r - .Rproj 文件无法使用 Rstudio 启动
- google-apps-script - 如何使用 Google Apps 脚本在父文件夹及其子文件夹中搜索并获取特定文件?