我不清楚为什么我在以下示例中打开了3个chrome浏览器。我有一个@Before(cucumber版本)注释,只需在方案运行之前设置一个chrome webdriver实例。据我所知,它应该打开一个浏览器,运行场景(步骤定义),然后使用@Aftercucumber钩关闭。在第三个也是最后一个窗口实际执行步骤之前,打开2个窗口:
Scenario:
Given I am on the holidays homepage
When I select the departure location "LON"
And I select the destination location "PAR"
And I submit a search
Then search results are displayed
步骤定义:
public class FindAHolidayStepDefs {
private WebDriver driver;
@Before
public void setup() {
System.setProperty("webdriver.chrome.driver",
System.getProperty("user.dir") + "\\drivers\\chromedriver.exe");
driver = new ChromeDriver();
}
@Given("^I am on the Holidays homepage$")
public void IAmOnTheThomasCookHomepage() {
driver.get("http://uat7.co-operativetravel.co.uk/");
driver.manage().window().maximize();
String pageTitle = driver.getTitle();
assertEquals("the wrong page title was displayed !", "Holidays - welcome", pageTitle);
}
@When("^I select the departure location \"([^\"]*)\"$")
public void ISelectTheDepartureLocation(String departureAirport) {
WebElement dropDownContainer = driver.findElement(By.xpath("(//div[@class=\"custom-select departurePoint airportSelect\"])[1]"));
dropDownContainer.click();
selectOption(departureAirport);
}
@When("^I select the destination location \"([^\"]*)\"$")
public void ISelectTheDestinationLocation(String destinationAirport) {
WebElement destinationField = driver.findElement(By.xpath(("(//div[@class=\"searchFormCol destinationAirport\"]/div[@class=\"combinedInput searchFormInput\"]/span/input)[1]")));
destinationField.sendKeys(destinationAirport);
selectOption("(" + destinationAirport + ")");
}
@When("^I submit a search$")public void iSubmitASearch() throws Throwable {
WebElement submitButton = driver.findElement(By.xpath("(.//*[@type='submit'])[1]"));
submitButton.click();
}
@Then("^search results are displayed$")
public void searchResultsAreDisplayed() throws Throwable {
waitForIsDisplayed(By.xpath(".//*[@id='container']/div/div[3]/div/div[1]/div/h3"), 30);
assertThat(checkPageTitle(), equalTo("Package Results"));
}
@After
public void tearDown() {
driver.quit();
}
}
当我单步执行Intellij中的代码时,将调用以下方法:
private void runHooks(List<HookDefinition> hooks, Reporter reporter, Set<Tag> tags, boolean isBefore)
Intellij报告说,此时挂钩参数=3。
hooks: size=3 reporter: "null" tags: size = 0 isBefore: true
我不知道为什么我为下面的示例打开了2个火狐浏览器。有人能告诉我下面的代码有什么问题吗?我是cucumber新手,我正在尝试使用页面对象模型开发cucumberpoc。 特征文件: 步骤定义文件: 步骤定义文件的实际实现:(首页.java) BasePage.java CustomerDetails.java 打开2个火狐浏览器:首先它打开一个空白浏览器。后来它打开另一个浏览器,并在此浏览器中打开应
全局基类 登录名 } 问题是,当运行此功能时,我得到了下面的错误,我不明白为什么会发生这种情况,因为它在错误的位置上没有给我任何帮助。 未定义步骤:给定I打开Chrome 未定义步骤:浏览网站时 未定义的步骤:然后我使用“user1”和“password1”登录网站
我有一个下载操作在我的javascript代码与提供商。 这将触发我的浏览器弹出窗口。我不想这样。 但是我想直接下载。不要显示弹出窗口。
我有这个功能文件 方案概要: 给定用户在我的网站上 当用户是管理员或主控编辑器时 3.用户在 /page/页面 4.和用户单击/标题/链接 5.然后用户应该被带到/目标页面/ 对于“给定用户在我的网站上”,我编写了登录详细信息,这将为场景中的每个示例打开新的浏览器。我希望单一浏览器打开并执行所有示例。有人能帮忙吗
我已经手动为Google.com打开了一个浏览器窗口,还有另一个浏览器窗口是由selenium webdriver为Google.com打开的。 我如何识别哪一个是硒打开的? 这个问题是在一次采访中问我的。我回答说,selenium打开的窗口不会有插件,还有一个是用Driver。关闭,但面试官说还有其他办法也可以识别。
我对python很陌生,所以我是一个新手,我尝试过搜索,但似乎没有什么效果(至少我看到和测试过)。我还尝试了“webbrowser.get(chrome_path).open(url)”,但这并没有真正帮助我