mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-12 11:07:20 +00:00
adding selenium tests for ingestion page (#1333)
* adding selenium tests for ingestion page * adding few tests changes and addressing reviewdog findings * testing selenium workflow
This commit is contained in:
parent
03057b8bc6
commit
72f5320914
3
.github/workflows/selenium-tests.yml
vendored
3
.github/workflows/selenium-tests.yml
vendored
@ -22,6 +22,9 @@ jobs:
|
|||||||
java-version: '11'
|
java-version: '11'
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
|
|
||||||
|
- name: Generating Data Models
|
||||||
|
run: make install_dev generate
|
||||||
|
|
||||||
- name: Start Server and Ingest Sample Data
|
- name: Start Server and Ingest Sample Data
|
||||||
run: ./docker/run_local_docker.sh
|
run: ./docker/run_local_docker.sh
|
||||||
|
|
||||||
|
@ -327,6 +327,7 @@ const Ingestion: React.FC<Props> = ({
|
|||||||
<div className="tw-flex">
|
<div className="tw-flex">
|
||||||
<div
|
<div
|
||||||
className="link-text tw-mr-2"
|
className="link-text tw-mr-2"
|
||||||
|
data-testid="run"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
handleTriggerIngestion(
|
handleTriggerIngestion(
|
||||||
ingestion.id as string,
|
ingestion.id as string,
|
||||||
@ -345,6 +346,7 @@ const Ingestion: React.FC<Props> = ({
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className="link-text tw-mr-2"
|
className="link-text tw-mr-2"
|
||||||
|
data-testid="edit"
|
||||||
onClick={() => handleUpdate(ingestion)}>
|
onClick={() => handleUpdate(ingestion)}>
|
||||||
{updateSelection.id === ingestion.id ? (
|
{updateSelection.id === ingestion.id ? (
|
||||||
updateSelection.state === 'success' ? (
|
updateSelection.state === 'success' ? (
|
||||||
@ -358,6 +360,7 @@ const Ingestion: React.FC<Props> = ({
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className="link-text tw-mr-2"
|
className="link-text tw-mr-2"
|
||||||
|
data-testid="delete"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
ConfirmDelete(
|
ConfirmDelete(
|
||||||
ingestion.id as string,
|
ingestion.id as string,
|
||||||
|
@ -446,6 +446,7 @@ const IngestionModal: React.FC<IngestionModalProps> = ({
|
|||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
className="tw-form-inputs tw-px-3 tw-py-1"
|
className="tw-form-inputs tw-px-3 tw-py-1"
|
||||||
|
data-testid="includeFilterPattern"
|
||||||
id="includeFilterPattern"
|
id="includeFilterPattern"
|
||||||
name="includeFilterPattern"
|
name="includeFilterPattern"
|
||||||
placeholder="Include filter patterns comma seperated"
|
placeholder="Include filter patterns comma seperated"
|
||||||
@ -460,6 +461,7 @@ const IngestionModal: React.FC<IngestionModalProps> = ({
|
|||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
className="tw-form-inputs tw-px-3 tw-py-1"
|
className="tw-form-inputs tw-px-3 tw-py-1"
|
||||||
|
data-testid="excludeFilterPattern"
|
||||||
id="excludeFilterPattern"
|
id="excludeFilterPattern"
|
||||||
name="excludeFilterPattern"
|
name="excludeFilterPattern"
|
||||||
placeholder="Exclude filter patterns comma seperated"
|
placeholder="Exclude filter patterns comma seperated"
|
||||||
@ -526,6 +528,7 @@ const IngestionModal: React.FC<IngestionModalProps> = ({
|
|||||||
<label htmlFor="endDate">End date (UTC):</label>
|
<label htmlFor="endDate">End date (UTC):</label>
|
||||||
<input
|
<input
|
||||||
className="tw-form-inputs tw-px-3 tw-py-1"
|
className="tw-form-inputs tw-px-3 tw-py-1"
|
||||||
|
data-testid="endDate"
|
||||||
min={startDate}
|
min={startDate}
|
||||||
type="date"
|
type="date"
|
||||||
value={endDate}
|
value={endDate}
|
||||||
|
@ -0,0 +1,136 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.openmetadata.catalog.selenium.pages.ingestion;
|
||||||
|
|
||||||
|
import com.github.javafaker.Faker;
|
||||||
|
import org.openmetadata.catalog.selenium.events.Events;
|
||||||
|
import org.openmetadata.catalog.selenium.properties.Property;
|
||||||
|
import org.openqa.selenium.By;
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.openqa.selenium.chrome.ChromeDriver;
|
||||||
|
import org.openqa.selenium.chrome.ChromeOptions;
|
||||||
|
import org.openqa.selenium.interactions.Actions;
|
||||||
|
import org.openqa.selenium.support.ui.WebDriverWait;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.Order;
|
||||||
|
import org.junit.jupiter.api.TestMethodOrder;
|
||||||
|
import org.junit.jupiter.api.MethodOrderer;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||||
|
public class IngestionPageTest {
|
||||||
|
|
||||||
|
static WebDriver webDriver;
|
||||||
|
static String url = Property.getInstance().getURL();
|
||||||
|
static Faker faker = new Faker();
|
||||||
|
static Actions actions;
|
||||||
|
static WebDriverWait wait;
|
||||||
|
Integer waitTime = Property.getInstance().getSleepTime();
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
public void openMetadataWindow() {
|
||||||
|
System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/linux/chromedriver");
|
||||||
|
ChromeOptions options = new ChromeOptions();
|
||||||
|
options.addArguments("--headless");
|
||||||
|
options.addArguments("--window-size=1280,800");
|
||||||
|
webDriver = new ChromeDriver(options);
|
||||||
|
actions = new Actions(webDriver);
|
||||||
|
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
|
||||||
|
webDriver.manage().window().maximize();
|
||||||
|
webDriver.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
public void openIngestionPage() throws InterruptedException {
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new
|
||||||
|
Thread.sleep(waitTime);
|
||||||
|
Events.click(webDriver, By.cssSelector(
|
||||||
|
"[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Ingestions']")); // Setting/Services
|
||||||
|
Thread.sleep(waitTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(2)
|
||||||
|
public void addIngestionService() throws InterruptedException {
|
||||||
|
openIngestionPage();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='add-new-user-button']"));
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[id='name'][name='name']"), faker.name().firstName());
|
||||||
|
Events.click(webDriver, By.cssSelector("[value='BigQuery$$bigquery']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[value='bigquery']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='next-button']"));
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[name='username']"), "openmetadata_user");
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[name='password']"), "openmetadata_password");
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[name='host']"), "localhost:3306");
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[name='database']"), "openmetadata_db");
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='next-button']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[value='week']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[value='4']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[value='21']"));
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[data-testid='endDate']"), "21072022");
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='next-button']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='save-button']"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(3)
|
||||||
|
public void runIngestionService() throws InterruptedException{
|
||||||
|
openIngestionPage();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='run']"));
|
||||||
|
webDriver.navigate().refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(4)
|
||||||
|
public void editIngestionService() throws InterruptedException{
|
||||||
|
openIngestionPage();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='edit']"));
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[data-testid='includeFilterPattern']"), ",");
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='next-button']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[value='hour']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[value='20']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='next-button']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='save-button']"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(5)
|
||||||
|
public void deleteIngestionService() throws InterruptedException {
|
||||||
|
openIngestionPage();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='delete']"));
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='save-button']"));
|
||||||
|
webDriver.navigate().refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
public void closeTabs() {
|
||||||
|
ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());
|
||||||
|
String originalHandle = webDriver.getWindowHandle();
|
||||||
|
for (String handle : webDriver.getWindowHandles()) {
|
||||||
|
if (!handle.equals(originalHandle)) {
|
||||||
|
webDriver.switchTo().window(handle);
|
||||||
|
webDriver.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
webDriver.switchTo().window(tabs.get(0)).close();
|
||||||
|
}
|
||||||
|
}
|
@ -16,6 +16,10 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.selenium.pages.myData;
|
package org.openmetadata.catalog.selenium.pages.myData;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Order;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
import org.openmetadata.catalog.selenium.events.Events;
|
import org.openmetadata.catalog.selenium.events.Events;
|
||||||
import org.openmetadata.catalog.selenium.properties.Property;
|
import org.openmetadata.catalog.selenium.properties.Property;
|
||||||
import org.openqa.selenium.By;
|
import org.openqa.selenium.By;
|
||||||
@ -25,130 +29,127 @@ import org.openqa.selenium.chrome.ChromeOptions;
|
|||||||
import org.openqa.selenium.interactions.Actions;
|
import org.openqa.selenium.interactions.Actions;
|
||||||
import org.openqa.selenium.support.ui.ExpectedConditions;
|
import org.openqa.selenium.support.ui.ExpectedConditions;
|
||||||
import org.openqa.selenium.support.ui.WebDriverWait;
|
import org.openqa.selenium.support.ui.WebDriverWait;
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
|
||||||
import org.junit.jupiter.api.Order;
|
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class MyDataPageTest {
|
public class MyDataPageTest {
|
||||||
|
|
||||||
static WebDriver webDriver;
|
static WebDriver webDriver;
|
||||||
static String url = Property.getInstance().getURL();
|
static String url = Property.getInstance().getURL();
|
||||||
Integer waitTime = Property.getInstance().getSleepTime();
|
static Actions actions;
|
||||||
static Actions actions;
|
static WebDriverWait wait;
|
||||||
static WebDriverWait wait;
|
Integer waitTime = Property.getInstance().getSleepTime();
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
public void openMetadataWindow() {
|
||||||
|
System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/linux/chromedriver");
|
||||||
|
ChromeOptions options = new ChromeOptions();
|
||||||
|
options.addArguments("--headless");
|
||||||
|
webDriver = new ChromeDriver(options);
|
||||||
|
actions = new Actions(webDriver);
|
||||||
|
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
|
||||||
|
webDriver.manage().window().maximize();
|
||||||
|
webDriver.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
public void checkWhatsNew() {
|
||||||
|
Events.click(webDriver, By.xpath("//ul[@class='slick-dots testid-dots-button']//li[2]")); // What's new page 2
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='WhatsNewModalChangeLogs']")); // Change Logs
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(2)
|
||||||
|
public void checkTabs() {
|
||||||
|
checkWhatsNew();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='myDataTab']")); // My Data
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='followingTab']")); // Following
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(3)
|
||||||
|
public void checkOverview() throws InterruptedException {
|
||||||
|
checkWhatsNew();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='tables']")); // Tables
|
||||||
|
webDriver.navigate().back();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='topics']")); // Topics
|
||||||
|
webDriver.navigate().back();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='dashboards']")); // Dashboard
|
||||||
|
webDriver.navigate().back();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='pipelines']")); // Pipeline
|
||||||
|
webDriver.navigate().back();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='service']")); // Services
|
||||||
|
webDriver.navigate().back();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='ingestion']")); // Services
|
||||||
|
webDriver.navigate().back();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='user']")); // Users
|
||||||
|
webDriver.navigate().back();
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='terms']")); // Teams
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(4)
|
||||||
|
public void checkSearchBar() throws InterruptedException {
|
||||||
|
checkWhatsNew();
|
||||||
|
wait.until(ExpectedConditions.elementToBeClickable(
|
||||||
|
webDriver.findElement(By.cssSelector("[id='searchBox']")))); // Search bar/dim
|
||||||
|
Events.sendKeys(webDriver, By.cssSelector("[id='searchBox']"), "dim"); // Search bar/dim
|
||||||
|
Thread.sleep(waitTime);
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='data-name']")); // Search bar/dim
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@BeforeEach
|
@Test
|
||||||
public void openMetadataWindow() {
|
@Order(5)
|
||||||
System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/linux/chromedriver");
|
public void checkHeaders() {
|
||||||
ChromeOptions options = new ChromeOptions();
|
checkWhatsNew();
|
||||||
options.addArguments("--headless");
|
ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());
|
||||||
webDriver = new ChromeDriver(options);
|
Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore
|
||||||
actions = new Actions(webDriver);
|
webDriver.navigate().back();
|
||||||
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
|
||||||
webDriver.manage().window().maximize();
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Teams']")); // Setting/Teams
|
||||||
webDriver.get(url);
|
webDriver.navigate().back();
|
||||||
}
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
|
||||||
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags
|
||||||
@Test
|
webDriver.navigate().back();
|
||||||
@Order(1)
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
|
||||||
public void checkWhatsNew() {
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Services']")); // Setting/Services
|
||||||
Events.click(webDriver, By.xpath("//ul[@class='slick-dots testid-dots-button']//li[2]")); // What's new page 2
|
Events.click(webDriver, By.cssSelector("[data-testid='whatsnew-modal']")); // What's New
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='WhatsNewModalChangeLogs']")); // Change Logs
|
checkWhatsNew();
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']"));
|
||||||
}
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Docs']"));
|
||||||
|
webDriver.switchTo().window(tabs.get(0));
|
||||||
@Test
|
|
||||||
@Order(2)
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']"));
|
||||||
public void checkTabs() {
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-API']"));
|
||||||
checkWhatsNew();
|
webDriver.navigate().back();
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='myDataTab']")); // My Data
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='followingTab']")); // Following
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']"));
|
||||||
}
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Slack']"));
|
||||||
|
webDriver.switchTo().window(tabs.get(0));
|
||||||
@Test
|
}
|
||||||
@Order(3)
|
|
||||||
public void checkOverview() throws InterruptedException {
|
@Test
|
||||||
checkWhatsNew();
|
@Order(6)
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='tables']")); // Tables
|
public void checkLogout() {
|
||||||
webDriver.navigate().back();
|
checkWhatsNew();
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='topics']")); // Topics
|
Events.click(webDriver, By.cssSelector("[data-testid='greeting-text']"));
|
||||||
webDriver.navigate().back();
|
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Logout']"));
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='dashboards']")); // Dashboard
|
}
|
||||||
webDriver.navigate().back();
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='pipelines']")); // Pipeline
|
@AfterEach
|
||||||
webDriver.navigate().back();
|
public void closeTabs() {
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='service']")); // Services
|
ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());
|
||||||
webDriver.navigate().back();
|
String originalHandle = webDriver.getWindowHandle();
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='user']")); // Users
|
for (String handle : webDriver.getWindowHandles()) {
|
||||||
webDriver.navigate().back();
|
if (!handle.equals(originalHandle)) {
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='terms']")); // Teams
|
webDriver.switchTo().window(handle);
|
||||||
}
|
webDriver.close();
|
||||||
|
}
|
||||||
@Test
|
|
||||||
@Order(4)
|
|
||||||
public void checkSearchBar() throws InterruptedException {
|
|
||||||
checkWhatsNew();
|
|
||||||
wait.until(ExpectedConditions.elementToBeClickable(
|
|
||||||
webDriver.findElement(By.cssSelector("[id='searchBox']")))); // Search bar/dim
|
|
||||||
Events.sendKeys(webDriver, By.cssSelector("[id='searchBox']"), "dim"); // Search bar/dim
|
|
||||||
Thread.sleep(waitTime);
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='data-name']")); // Search bar/dim
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Order(5)
|
|
||||||
public void checkHeaders() {
|
|
||||||
checkWhatsNew();
|
|
||||||
ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore
|
|
||||||
webDriver.navigate().back();
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Teams']")); // Setting/Teams
|
|
||||||
webDriver.navigate().back();
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags
|
|
||||||
webDriver.navigate().back();
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Services']")); // Setting/Services
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='whatsnew-modal']")); // What's New
|
|
||||||
checkWhatsNew();
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']"));
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Docs']"));
|
|
||||||
webDriver.switchTo().window(tabs.get(0));
|
|
||||||
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']"));
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-API']"));
|
|
||||||
webDriver.navigate().back();
|
|
||||||
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']"));
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Slack']"));
|
|
||||||
webDriver.switchTo().window(tabs.get(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Order(6)
|
|
||||||
public void checkLogout() {
|
|
||||||
checkWhatsNew();
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='greeting-text']"));
|
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Logout']"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterEach
|
|
||||||
public void closeTabs() {
|
|
||||||
ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());
|
|
||||||
String originalHandle = webDriver.getWindowHandle();
|
|
||||||
for (String handle : webDriver.getWindowHandles()) {
|
|
||||||
if (!handle.equals(originalHandle)) {
|
|
||||||
webDriver.switchTo().window(handle);
|
|
||||||
webDriver.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
webDriver.switchTo().window(tabs.get(0)).close();
|
|
||||||
}
|
}
|
||||||
|
webDriver.switchTo().window(tabs.get(0)).close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -111,6 +111,7 @@ public class TopicDetailsPageTest {
|
|||||||
}
|
}
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
|
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore
|
Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore
|
||||||
|
Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[2]")); // Topics
|
||||||
Events.click(webDriver, By.cssSelector("[data-testid='checkbox'][id='PersonalData.Personal']"));
|
Events.click(webDriver, By.cssSelector("[data-testid='checkbox'][id='PersonalData.Personal']"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user