Mac java selenium chromeDriver在新标签页打开

本文深入探讨了使用Selenium进行键盘操作的方法,包括在不同操作系统上使用Command、Control和Enter键打开新标签页的多种尝试,最终确定了一个有效的方法。
//                        Actions actionOpenLinkInNewTab = new Actions(mainDriver);
//                        actionOpenLinkInNewTab.keyDown(Keys.COMMAND).sendKeys("t").keyUp(Keys.COMMAND).perform();
//
//                        actionOpenLinkInNewTab.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).perform();
//
//                        actionOpenLinkInNewTab.keyDown(Keys.LEFT_CONTROL).sendKeys("t").keyUp(Keys.LEFT_CONTROL).perform();
//                        mainDriver.findElements(By.className("leads-table__td-name__name")).get(leadNo).sendKeys(Keys.chord(Keys.COMMAND ,"t"));
//                        leads.get(leadNo).sendKeys(Keys.chord(Keys.COMMAND ,"t"));
//                        leads.get(leadNo).sendKeys(Keys.chord(Keys.LEFT_CONTROL ,"t"));
//                        leads.get(leadNo).sendKeys(Keys.COMMAND +"t");
//                        leads.get(leadNo).sendKeys(Keys.LEFT_CONTROL +"t");
//                        leads.get(leadNo).sendKeys(Keys.CONTROL +"t");
                        leads.get(leadNo).sendKeys(Keys.chord(Keys.COMMAND, Keys.ENTER));
//                        leads.get(leadNo).sendKeys(Keys.chord(Keys.CONTROL ,Keys.ENTER));
//                        leads.get(leadNo).sendKeys(Keys.chord(Keys.LEFT_CONTROL ,Keys.ENTER));
//                        leads.get(leadNo).sendKeys(Keys.COMMAND);
//                        leads.get(leadNo).click();

 

 

leads.get(leadNo).sendKeys(Keys.chord(Keys.COMMAND, Keys.ENTER));

试了一大堆 最后只有一个成功了。。。

神奇的是这个组合实测浏览器里没成功

 

在使用 Selenium 实现点击链接并在新标签页打开的功能时,可以通过以下方式完成。首先,确保你的代码中使用了 `selenium` 的 `find_element` 方法来定位目标链接元素,然后通过 `send_keys` 方法结合快捷键 `Ctrl+Enter` 或 `Ctrl+Click` 来实现链接在新标签页打开的效果。此外,还可以通过 JavaScript 脚本来实现这一操作。 ### 示例代码 以下是一个使用 Selenium 的完整实现示例: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time # 初始化浏览器驱动 driver = webdriver.Chrome() # 打开目标网页 driver.get("https://www.example.com") time.sleep(2) # 定位目标链接元素 link_element = driver.find_element(By.XPATH, "//a[@href='https://www.targetsite.com']") # 方法一:使用快捷键 Ctrl + Enter 在新标签页打开链接 link_element.send_keys(Keys.CONTROL + Keys.RETURN) time.sleep(1) # 获取所有标签页句柄 handles = driver.window_handles # 切换到新打开的标签页 driver.switch_to.window(handles[1]) # 此时可以在新标签页中执行其他操作,例如获取页面标题 print(driver.title) # 方法二:使用 JavaScript 在新标签页打开链接 driver.execute_script("window.open('https://www.another-site.com');") time.sleep(1) # 切换到最新打开的标签页 driver.switch_to.window(driver.window_handles[-1]) # 关闭浏览器 driver.quit() ``` ### 说明 - `send_keys(Keys.CONTROL + Keys.RETURN)` 会模拟按下 `Ctrl+Enter` 键,从而在新标签页打开链接。 - `window_handles` 用于获取当前浏览器中所有打开的标签页句柄,通过 `switch_to.window` 方法切换到指定标签页。 - `execute_script("window.open(...)")` 是另一种通过 JavaScript 在新标签页打开链接的方法,适用于需要动态生成链接的场景。 ### 注意事项 - 确保浏览器驱动(如 `chromedriver`)与浏览器版本兼容。 - 使用 `time.sleep()` 是为了确保页面加载完成,但在实际项目中建议使用 `WebDriverWait` 实现更精确的等待[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值