python - 如何使用 Selenium 和 Python 在新选项卡中打开新链接(单击网页中的元素后生成)?
问题描述
我必须尝试单击网页上的元素,并且我希望单击后的链接应在新选项卡中打开,这是代码片段:
browser.find_element_by_xpath('//*[@id="container"]/main/div/sec[1]').click()
# Above code open the link but in the same tab.
我尝试使用以下代码在新选项卡中打开它:
browser.find_element_by_xpath('//*[@id="container"]/main/div/sec[1]').send_keys(Keys.CONTROL + 't').click()
# But it's not working.
如何在新标签页中打开它?
PS:这不是在新标签中打开的链接,它是要在新标签中打开的元素,所以不要将其标记为重复。
解决方案
这应该在 Java 中工作(希望你可以用 Python 编写这个逻辑),
在新选项卡中打开链接
WebElement ele = wd.findElement(By.xpath(xpath));
Actions link = new Actions(wd);
link.keyDown(Keys.COMMAND).click(ele).keyUp(Keys.COMMAND).build().perform();
Thread.sleep(5000);
切换到新标签,
Set<String> windows = wd.getWindowHandles();
wd.switchTo().window((String) windows.toArray()[1]);
推荐阅读
- ios - 来自苹果免费帐户 libswiftCore.dylib 的代码签名错误:errSecInternalComponent
- flutter - Dart 中有没有办法将函数标记为抛出异常?
- javascript - Strapi CMS:添加计算字段
- azure - Azure Application Insight 工作项授权错误
- json - Oracle APEX 中的 POST 请求(数组)
- r - 需要在子集中指定年龄区间
- python - 如何用一维数组中的值替换 3D numpy 数组的第一维?
- c# - 如何并行执行任务但每 T 秒不超过 N 个任务?
- php - 从 PHPword 或 PHPSpreadsheet 生成简单的 PDF 文件?
- php - codeingter3 HMVC 'default_controller' 不工作