【发布时间】:2015-11-25 05:51:04
【问题描述】:
我已经搜索和搜索,但我似乎找不到这个特定问题的答案。
情况如下:在单个特定页面上使用任何 Web 驱动程序(IE、FireFox 或 Chrome),在页面上的任何链接上使用 .click 命令会导致打开一个新窗口。这会导致原来的窗口死掉,我的测试在脚本中找不到下一个元素。
如果我手动打开浏览器并执行完全相同的步骤,则不会复制此行为。
使用普通的手动浏览器,当我右键单击元素并检查它时,我看到这一行:
<a>class="" href="/new-page-link" title="">Link Title</a>
但是,当我打开 webdriver 并检查同一页面中完全相同的元素时,我看到:
<a>target="_blank" href="/new-page-link" title="" class="active-trail active">Link Title</a>
这是踢球者;仅当我使用 URL 中的开发人员凭据(例如 http://user:pass@website.com/
)登录该站点时,我才会看到此行为有什么想法吗?
根据要求,这是一个(非常基本的)网络驱动程序代码:
driver = new FirefoxDriver();
BrowserType = "Firefox";
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("www.MyUrl.com");
driver.findElement(By.linkText("Link Text")).click();
【问题讨论】:
-
这很 hacky,但是您是否尝试过明确声明 target="_self"?至于为什么,我不知道。出于好奇,“ 是故意的吗?
-
可以分享一下webdriver代码吗?
-
提供了 Webdriver 代码。测试的实际代码要复杂得多,但即使是像上面这样非常基本的测试也会失败。
-
至于明确说明 target="_self",如果你的意思是在网页上,我不能这样做,因为我不控制那个代码库。如果您的意思是在 Webdriver 中,强制 target = self,我认为这与 Dharam 推荐的相同?我今天会试试看。
标签: selenium drupal selenium-webdriver junit automated-tests