当前位置: 首页 > 知识库问答 >
问题:

获取打开的选项卡Selenium/java的URL

申屠无尘
2023-03-14

我喜欢什么:进入网页,点击一个链接,在一个新的标签打开。确认新选项卡的URL。

我在cucumber/selenium/java中这样做。

这是我的小cucumber

Scenario Outline: The HomePage tourism box links to the correct page

Given I navigate to the HomePage in <language>
When I click on the visit Tourism PEI Button
Then I am taken to the Tourism PEI landing page URL in a new tab

Examples:
  | language |
  | English  |
  | French   |

我点击链接的代码:

 @When("^I click on the Visit\\s" + pageElements + "$")
public void iClickFOnTheVisitTourismPEIButton(String element)  {
    pageModel.pageObject(element).click();
    progressObj.wait(1);
}

和代码,我已经尝试从新标签获取URL。我在这里挣扎。我所尝试的一切都会打开一个新的标签,然后屏幕变为空白并显示数据;在URL中,或者它将打开一个新的标签在一个已经这样做的顶部。我知道我不是真的在正确的轨道上。这只是我尝试过的最后一件事。

@Then("^I am\\s*((?:not)?)\\staken to the Tourism PEI landing page URL in a new tab$")
public void iAmTakenToTheTourismPEILandingPageURLInANewTab() {

    WebDriver driver = new ChromeDriver();
    Actions action = new Actions(driver);
    action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform();
}

我也试过这个

 String currentURL;

       currentURL = driver.getWebDriver().getCurrentUrl();
       if (currentURL.equalsIgnoreCase("https://www.tourismpei.com/")) {
           System.out.println("Matches" + currentURL);
       } else {
           System.out.println("Does not match" + currentURL);
       }

它使用的是原始的URL,而不是新的标签...

共有1个答案

端木狐若
2023-03-14
for (String handle : driver.getWindowHandles()) {
    driver.switchTo().window(handle);
    System.out.println(String.format("handle: %s, url: %s", handle, driver.getWebDriver().getCurrentUrl()));
} 
 类似资料:
  • 因此,我有一个,我想冲浪到新选项卡中,链接是不可点击的,所以当我点击这个链接时,什么也不会发生,这将不起作用(甚至不手动): 这是我的web URL:

  • 由于Firefox不再支持Control+T选项卡,我开始使用driver.execute_script(“window.open('url','new_window')”) 我正在尝试显示我打开的不同选项卡的标题,并在它们之间切换。对于下面的示例,我期望输出是facebook、google和返回到facebook。现在的输出是facebook、facebook、facebook. 我尝试了从这里

  • 我一直试图通过Selenium打开浏览器中的选项卡,似乎除了Safari之外,所有选项卡都可以使用。 我正在尝试以下操作: 有什么提示吗? 更新 一些相关的回答包括: null 原因:org.openqa.selenium.InvalidArgumentException:请求正文不包含必需的参数“handle”。构建信息:版本:“3.14.0”,修订版:“AACCCCE0”,时间:“2018-0

  • 我有一个每行都有一个URL的文本文档。我希望每个URL都在一个新选项卡中打开。这是我到目前为止所拥有的: 这给了我一个错误: 回溯(最近一次调用last):驱动程序中第100行的文件“scraper.py”。execute\u script(“window.open(url,'new\u window')”)文件“C:\Python37\lib\site packages\selenium\web

  • 问题内容: 我正在使用Python。我正在尝试在Chrome上打开两个标签,每个标签都指向不同的网站。这是我的代码: 当我运行它时,第一个标签页打开到reddit.com,然后另一个标签页打开到我的默认网页,然后在原始标签页中打开bing.com。我希望第一个选项卡转到Reddit,第二个选项卡转到bing,但仅作用于第一个选项卡。 问题答案: 像这样为python尝试:

  • 所以我试图在我的WebDriver中打开新的标签页。我想这样做,因为打开一个新的WebDriver为每个网站使用PhantomJS约3.5秒,我想要更快... 我使用的是一个多进程python脚本,我希望从每个页面中获取一些元素,因此工作流如下所示: