Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a10a5304aa | ||
![]() |
71ae963669 | ||
![]() |
debf2aa24d | ||
8cb49e7c28 | |||
![]() |
aac01d998e | ||
![]() |
9929ae7808 | ||
![]() |
fa9c17c036 | ||
![]() |
8555b77529 |
38
Homework12/.gitignore
vendored
Normal file
38
Homework12/.gitignore
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
target/
|
||||||
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
!**/src/main/**/target/
|
||||||
|
!**/src/test/**/target/
|
||||||
|
|
||||||
|
### IntelliJ IDEA ###
|
||||||
|
.idea/modules.xml
|
||||||
|
.idea/jarRepositories.xml
|
||||||
|
.idea/compiler.xml
|
||||||
|
.idea/libraries/
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
|
||||||
|
### Eclipse ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
build/
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
|
### VS Code ###
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
### Mac OS ###
|
||||||
|
.DS_Store
|
8
Homework12/.idea/.gitignore
generated
vendored
Normal file
8
Homework12/.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
7
Homework12/.idea/encodings.xml
generated
Normal file
7
Homework12/.idea/encodings.xml
generated
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding">
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
|
</component>
|
||||||
|
</project>
|
14
Homework12/.idea/misc.xml
generated
Normal file
14
Homework12/.idea/misc.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="temurin-23" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
6
Homework12/.idea/vcs.xml
generated
Normal file
6
Homework12/.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
29
Homework12/pom.xml
Normal file
29
Homework12/pom.xml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.example</groupId>
|
||||||
|
<artifactId>Homework12</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>23</maven.compiler.source>
|
||||||
|
<maven.compiler.target>23</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter</artifactId>
|
||||||
|
<version>5.11.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.seleniumhq.selenium</groupId>
|
||||||
|
<artifactId>selenium-java</artifactId>
|
||||||
|
<version>4.28.1</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
7
Homework12/src/main/java/org/example/Main.java
Normal file
7
Homework12/src/main/java/org/example/Main.java
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package org.example;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Hello, World!");
|
||||||
|
}
|
||||||
|
}
|
31
Homework12/src/test/java/DuckDuckGoPage.java
Normal file
31
Homework12/src/test/java/DuckDuckGoPage.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import org.openqa.selenium.By;
|
||||||
|
import org.openqa.selenium.Keys;
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|
||||||
|
public class DuckDuckGoPage extends Page {
|
||||||
|
private static final String URL = "https://html.duckduckgo.com/html";
|
||||||
|
private static final By SEARCH_BOX = By.id("search_form_input_homepage");
|
||||||
|
|
||||||
|
public DuckDuckGoPage(WebDriver driver) {
|
||||||
|
super(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void open() {
|
||||||
|
driver.get(URL);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void performSearchAndClickResult(String searchTerm) {
|
||||||
|
driver.findElement(SEARCH_BOX).click();
|
||||||
|
driver.findElement(SEARCH_BOX).sendKeys(searchTerm);
|
||||||
|
driver.findElement(SEARCH_BOX).sendKeys(Keys.ENTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public UniMarburgDp12Page clickResultUniMarburgDp12(){
|
||||||
|
clickResult(UniMarburgDp12Page.DP_12_TITLE);
|
||||||
|
return new UniMarburgDp12Page(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
void clickResult(String desiredResultTitle){
|
||||||
|
driver.findElement(By.linkText(desiredResultTitle)).click();
|
||||||
|
}
|
||||||
|
}
|
27
Homework12/src/test/java/ModuleHandbookPage.java
Normal file
27
Homework12/src/test/java/ModuleHandbookPage.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import org.openqa.selenium.By;
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
public class ModuleHandbookPage extends UniMarburgPage {
|
||||||
|
|
||||||
|
public static final String SQ_MODULE_BASIC_INFO = "Lecture (4 SWS), recitation class (2 SWS),\n270 hours (90 h attendance, 180 h private study)";
|
||||||
|
public static final String SQ_MODULE_EXAM_INFO = "9 CP\nCourse requirement(s): Successful completion of at least 50 percent of the points from the weekly exercises as well as at least 2 presentations of the tasks.\nExamination type: Oral examination (individual examination) or written examination";
|
||||||
|
public static final By SQ_MODULE_BASIC_INFO_CSS_BLOCK = By.cssSelector("tr:nth-child(2) > td:nth-child(2)");
|
||||||
|
public static final By SQ_MODULE_EXAM_INFO_CSS_BLOCK = By.cssSelector("tr:nth-child(3) > td:nth-child(2)");
|
||||||
|
public static final By SQ_MODULE_NAME_CSS_BLOCK = By.cssSelector("h1 > b");
|
||||||
|
public static final By MS_COMPUTER_SCIENCE_PATH = By.xpath("(//a[text()=\'M.Sc. Computer Science\'])[2]");
|
||||||
|
|
||||||
|
public ModuleHandbookPage(WebDriver driver) {
|
||||||
|
super(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void verifyAndNavigateToSoftwareQualityModule() {
|
||||||
|
driver.findElement(MS_COMPUTER_SCIENCE_PATH).click();
|
||||||
|
driver.findElement(By.linkText("Alphabetical index of all modules in this course")).click();
|
||||||
|
driver.findElement(By.linkText("Software Quality")).click();
|
||||||
|
assertEquals("CS 661 — Software Quality", driver.findElement(SQ_MODULE_NAME_CSS_BLOCK).getText());
|
||||||
|
assertEquals(SQ_MODULE_BASIC_INFO, driver.findElement(SQ_MODULE_BASIC_INFO_CSS_BLOCK).getText());
|
||||||
|
assertEquals(SQ_MODULE_EXAM_INFO, driver.findElement(SQ_MODULE_EXAM_INFO_CSS_BLOCK).getText());
|
||||||
|
}
|
||||||
|
}
|
9
Homework12/src/test/java/Page.java
Normal file
9
Homework12/src/test/java/Page.java
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|
||||||
|
public abstract class Page {
|
||||||
|
protected final WebDriver driver;
|
||||||
|
|
||||||
|
public Page(WebDriver driver) {
|
||||||
|
this.driver = driver;
|
||||||
|
}
|
||||||
|
}
|
64
Homework12/src/test/java/Ueb12Test.java
Normal file
64
Homework12/src/test/java/Ueb12Test.java
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.openqa.selenium.By;
|
||||||
|
import org.openqa.selenium.Dimension;
|
||||||
|
import org.openqa.selenium.JavascriptExecutor;
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.openqa.selenium.firefox.FirefoxDriver;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Ueb12Test {
|
||||||
|
private WebDriver driver;
|
||||||
|
private Map<String, Object> vars;
|
||||||
|
JavascriptExecutor js;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
public void setUp() {
|
||||||
|
driver = new FirefoxDriver();
|
||||||
|
js = (JavascriptExecutor) driver;
|
||||||
|
vars = new HashMap<>();
|
||||||
|
|
||||||
|
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
|
||||||
|
driver.manage().window().setSize(new Dimension(1337, 733));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
public void tearDown() {
|
||||||
|
driver.quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIfUsersCanSearchForAndFindSoftwareQualityModule() {
|
||||||
|
// Using Google Search is not possible as it asks us to solve captchas ...
|
||||||
|
// googleSearch();
|
||||||
|
// Let's use DuckDuckGo instead!
|
||||||
|
DuckDuckGoPage duckDuckGoPage = new DuckDuckGoPage(driver);
|
||||||
|
duckDuckGoPage.open();
|
||||||
|
duckDuckGoPage.performSearchAndClickResult("uni marburg fb12");
|
||||||
|
|
||||||
|
UniMarburgDp12Page uniMarburgPage = duckDuckGoPage.clickResultUniMarburgDp12();
|
||||||
|
|
||||||
|
uniMarburgPage.changeLanguageToEnglish();
|
||||||
|
uniMarburgPage.checkMenuItems();
|
||||||
|
uniMarburgPage.checkAndSelectModulesAndCourses();
|
||||||
|
|
||||||
|
ModuleHandbookPage moduleHandbookPage = uniMarburgPage.checkAndOpenModuleGuide();
|
||||||
|
|
||||||
|
moduleHandbookPage.changeLanguageToEnglish();
|
||||||
|
moduleHandbookPage.verifyAndNavigateToSoftwareQualityModule();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void googleSearch() {
|
||||||
|
driver.get("https://www.google.de/");
|
||||||
|
driver.manage().window().setSize(new Dimension(1337, 733));
|
||||||
|
|
||||||
|
driver.findElement(By.name("q")).sendKeys("uni marburg fb12");
|
||||||
|
driver.findElement(By.xpath("(//input[@name=\'btnK\'])[2]")).click();
|
||||||
|
driver.findElement(By.xpath("//h3[contains(.,\'Mathematik und Informatik\')]")).click();
|
||||||
|
}
|
||||||
|
}
|
45
Homework12/src/test/java/UniMarburgDp12Page.java
Normal file
45
Homework12/src/test/java/UniMarburgDp12Page.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import org.openqa.selenium.By;
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
public class UniMarburgDp12Page extends UniMarburgPage {
|
||||||
|
public static final String DP_12_TITLE = "Philipps-Universität Marburg - Mathematik und Informatik";
|
||||||
|
|
||||||
|
private static final Map<String, By> topics = Map.of(
|
||||||
|
"Department",
|
||||||
|
By.xpath("//div[@id=\'section-navigation\']/div/ul/li[2]/a"),
|
||||||
|
"Studying",
|
||||||
|
By.xpath("//div[@id=\'section-navigation\']/div/ul/li[3]/a"),
|
||||||
|
"Research",
|
||||||
|
By.xpath("//div[@id=\'section-navigation\']/div/ul/li[4]/a"),
|
||||||
|
"Research groups",
|
||||||
|
By.xpath("//div[@id=\'section-navigation\']/div/ul/li[5]/a")
|
||||||
|
);
|
||||||
|
private static final By MODULES_AND_COURSES_SELECTOR = By.cssSelector("li:nth-child(4) > a > div");
|
||||||
|
private static final By MODULE_GUIDE_SELECTOR = By.cssSelector(".link-text-list:nth-child(6) .diazoadded");
|
||||||
|
|
||||||
|
public UniMarburgDp12Page(WebDriver driver) {
|
||||||
|
super(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkMenuItems() {
|
||||||
|
for (String item : topics.keySet()) {
|
||||||
|
assertEquals(item, driver.findElement(topics.get(item)).getText());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkAndSelectModulesAndCourses() {
|
||||||
|
driver.findElement(topics.get("Studying")).click();
|
||||||
|
assertEquals("Modules & Courses\nModules and Courses", driver.findElement(MODULES_AND_COURSES_SELECTOR).getText());
|
||||||
|
driver.findElement(MODULES_AND_COURSES_SELECTOR).click();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ModuleHandbookPage checkAndOpenModuleGuide() {
|
||||||
|
assertEquals(("directly to the online module guide"), driver.findElement(MODULE_GUIDE_SELECTOR).getText());
|
||||||
|
driver.findElement(MODULE_GUIDE_SELECTOR).click();
|
||||||
|
return new ModuleHandbookPage(driver);
|
||||||
|
}
|
||||||
|
}
|
23
Homework12/src/test/java/UniMarburgPage.java
Normal file
23
Homework12/src/test/java/UniMarburgPage.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import org.openqa.selenium.By;
|
||||||
|
import org.openqa.selenium.JavascriptExecutor;
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class UniMarburgPage extends Page {
|
||||||
|
private static final By LANGUAGE_SELECTOR = By.cssSelector(".language > a");
|
||||||
|
|
||||||
|
public UniMarburgPage(WebDriver driver) {
|
||||||
|
super(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void changeLanguageToEnglish() {
|
||||||
|
JavascriptExecutor js = (JavascriptExecutor) driver;
|
||||||
|
HashMap<String, Object> vars = new HashMap<>();
|
||||||
|
|
||||||
|
vars.put("lang", driver.findElement(LANGUAGE_SELECTOR).getText());
|
||||||
|
if ((Boolean) js.executeScript("return (arguments[0] === \'ENGLISH\')", vars.get("lang"))) {
|
||||||
|
driver.findElement(LANGUAGE_SELECTOR).click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
319
Homework12/ueb12-test.side
Normal file
319
Homework12/ueb12-test.side
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
{
|
||||||
|
"id": "eb04f4f9-5f11-4343-9336-dbe6b5a78af3",
|
||||||
|
"version": "2.0",
|
||||||
|
"name": "hw12",
|
||||||
|
"url": "https://www.google.de",
|
||||||
|
"tests": [{
|
||||||
|
"id": "8a49f466-f633-4340-9203-f86651654500",
|
||||||
|
"name": "Untitled",
|
||||||
|
"commands": [{
|
||||||
|
"id": "1626e190-3180-4c3a-8dcf-8abd372dc44b",
|
||||||
|
"comment": "",
|
||||||
|
"command": "open",
|
||||||
|
"target": "/",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "abfc43b8-4827-47ad-87ad-05cbc0181d62",
|
||||||
|
"comment": "",
|
||||||
|
"command": "setWindowSize",
|
||||||
|
"target": "1337x733",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "37565868-240d-49b8-913d-89177b740e51",
|
||||||
|
"comment": "",
|
||||||
|
"command": "type",
|
||||||
|
"target": "name=q",
|
||||||
|
"targets": [
|
||||||
|
["id=APjFqb", "id"],
|
||||||
|
["name=q", "name"],
|
||||||
|
["css=#APjFqb", "css:finder"],
|
||||||
|
["xpath=//textarea[@id='APjFqb']", "xpath:attributes"],
|
||||||
|
["xpath=//textarea", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "uni marburg fb12"
|
||||||
|
}, {
|
||||||
|
"id": "afde340c-2c3d-4472-84f4-349f94fa20e1",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "xpath=(//input[@name='btnK'])[2]",
|
||||||
|
"targets": [
|
||||||
|
["css=center:nth-child(1) > .gNO89b", "css:finder"],
|
||||||
|
["xpath=(//input[@name='btnK'])[2]", "xpath:attributes"],
|
||||||
|
["xpath=//div[3]/center/input", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "796aa901-1076-48cb-b786-eae9ba6fdf40",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "xpath=//h3[contains(.,'Mathematik und Informatik')]",
|
||||||
|
"targets": [
|
||||||
|
["css=.eKjLze .LC20lb", "css:finder"],
|
||||||
|
["xpath=//div[@id='rso']/div/div/div/div/div/div/div/div/div/div/div/span/a/h3", "xpath:idRelative"],
|
||||||
|
["xpath=//h3", "xpath:position"],
|
||||||
|
["xpath=//h3[contains(.,'Mathematik und Informatik')]", "xpath:innerText"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "f862ad37-a99d-44ec-8f50-9fb63899117a",
|
||||||
|
"comment": "",
|
||||||
|
"command": "storeText",
|
||||||
|
"target": "css=.language > a",
|
||||||
|
"targets": [
|
||||||
|
["css=.language > a", "css:finder"],
|
||||||
|
["xpath=//a[contains(text(),'English')]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='service-navigation']/div[2]/ul/li[4]/a", "xpath:idRelative"],
|
||||||
|
["xpath=//a[contains(@href, 'https://www.uni-marburg.de/@@multilingual-selector/8d3dd0f85933453c9362b13354bb07b5/en?set_language=en')]", "xpath:href"],
|
||||||
|
["xpath=//div[2]/ul/li[4]/a", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "lang"
|
||||||
|
}, {
|
||||||
|
"id": "29e943cb-4eb8-46df-9d8e-7fe2785ae4be",
|
||||||
|
"comment": "",
|
||||||
|
"command": "if",
|
||||||
|
"target": "${lang} === \"ENGLISH\"",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "3b426443-1e48-4890-912c-7638d2f3691d",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "css=.language > a",
|
||||||
|
"targets": [
|
||||||
|
["css=.language > a", "css:finder"],
|
||||||
|
["xpath=//a[contains(text(),'English')]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='service-navigation']/div[2]/ul/li[4]/a", "xpath:idRelative"],
|
||||||
|
["xpath=//a[contains(@href, 'https://www.uni-marburg.de/@@multilingual-selector/8d3dd0f85933453c9362b13354bb07b5/en?set_language=en')]", "xpath:href"],
|
||||||
|
["xpath=//div[2]/ul/li[4]/a", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "0e03c4df-6910-4c93-9e3c-544a0d1b2b64",
|
||||||
|
"comment": "",
|
||||||
|
"command": "end",
|
||||||
|
"target": "",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "6c18fbce-b72f-4cb3-b4b3-6e22a9fba5e2",
|
||||||
|
"comment": "",
|
||||||
|
"command": "assertText",
|
||||||
|
"target": "xpath=//div[@id='section-navigation']/div/ul/li[2]/a",
|
||||||
|
"targets": [
|
||||||
|
["linkText=Department", "linkText"],
|
||||||
|
["css=.focused > a", "css:finder"],
|
||||||
|
["xpath=(//a[contains(text(),'Department')])[4]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='section-navigation']/div/ul/li[2]/a", "xpath:idRelative"],
|
||||||
|
["xpath=//a[contains(@href, 'https://www.uni-marburg.de/en/fb12/department')]", "xpath:href"],
|
||||||
|
["xpath=//nav[4]/div/div/ul/li[2]/a", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "Department"
|
||||||
|
}, {
|
||||||
|
"id": "3ca4a555-e71d-4d73-9b76-207d9d0cd6ad",
|
||||||
|
"comment": "",
|
||||||
|
"command": "assertText",
|
||||||
|
"target": "xpath=//div[@id='section-navigation']/div/ul/li[3]/a",
|
||||||
|
"targets": [],
|
||||||
|
"value": "Studying"
|
||||||
|
}, {
|
||||||
|
"id": "d33c6c12-8b20-4dc4-9361-f765c01b9ff5",
|
||||||
|
"comment": "",
|
||||||
|
"command": "assertText",
|
||||||
|
"target": "xpath=//div[@id='section-navigation']/div/ul/li[4]/a",
|
||||||
|
"targets": [
|
||||||
|
["css=.parent > a", "css:finder"],
|
||||||
|
["xpath=(//a[contains(text(),'Research')])[13]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='section-navigation']/div/ul/li[4]/a", "xpath:idRelative"],
|
||||||
|
["xpath=//a[contains(@href, 'https://www.uni-marburg.de/en/fb12/research')]", "xpath:href"],
|
||||||
|
["xpath=//nav[4]/div/div/ul/li[4]/a", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "Research"
|
||||||
|
}, {
|
||||||
|
"id": "5db74f46-b520-452a-b2e2-d2e66168bc51",
|
||||||
|
"comment": "",
|
||||||
|
"command": "assertText",
|
||||||
|
"target": "xpath=//div[@id='section-navigation']/div/ul/li[5]/a",
|
||||||
|
"targets": [
|
||||||
|
["linkText=Research groups", "linkText"],
|
||||||
|
["css=div > ul:nth-child(2) > li:nth-child(5) > a", "css:finder"],
|
||||||
|
["xpath=//a[contains(text(),'Research groups')]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='section-navigation']/div/ul/li[5]/a", "xpath:idRelative"],
|
||||||
|
["xpath=//a[contains(@href, 'https://www.uni-marburg.de/en/fb12/research-groups')]", "xpath:href"],
|
||||||
|
["xpath=//nav[4]/div/div/ul/li[5]/a", "xpath:position"],
|
||||||
|
["xpath=//a[contains(.,'Research groups')]", "xpath:innerText"]
|
||||||
|
],
|
||||||
|
"value": "Research groups"
|
||||||
|
}, {
|
||||||
|
"id": "6ebfbd32-b7b5-4165-a22c-cacdf12a26d0",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "xpath=//div[@id='section-navigation']/div/ul/li[3]/a",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "37fc82c3-52a0-4b72-b130-6df4521eec16",
|
||||||
|
"comment": "",
|
||||||
|
"command": "assertText",
|
||||||
|
"target": "css=li:nth-child(4) > a > div",
|
||||||
|
"targets": [
|
||||||
|
["css=li:nth-child(4) > a > div", "css:finder"],
|
||||||
|
["xpath=//section[@id='link-text-list-info']/div/ul/li[4]/a/div", "xpath:idRelative"],
|
||||||
|
["xpath=//li[4]/a/div", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "Modules & Courses\\nModules and Courses"
|
||||||
|
}, {
|
||||||
|
"id": "6911e243-d2c5-435a-b525-485205d5e6da",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "css=li:nth-child(4) > a > div",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "5a12117c-d549-487d-b840-8bd39b119431",
|
||||||
|
"comment": "",
|
||||||
|
"command": "verifyText",
|
||||||
|
"target": "css=.link-text-list:nth-child(6) .diazoadded",
|
||||||
|
"targets": [
|
||||||
|
["css=.link-text-list:nth-child(6) .diazoadded", "css:finder"],
|
||||||
|
["xpath=//div[@id='content']/section/div/ul[2]/li/a/div", "xpath:idRelative"],
|
||||||
|
["xpath=//div/ul[2]/li/a/div", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "directly to the online module guide"
|
||||||
|
}, {
|
||||||
|
"id": "33f64c2d-6305-4e2b-a967-32e0327b126e",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "css=.link-text-list:nth-child(6) .diazoadded",
|
||||||
|
"targets": [
|
||||||
|
["css=.link-text-list:nth-child(6) .diazoadded", "css:finder"],
|
||||||
|
["xpath=//div[@id='content']/section/div/ul[2]/li/a/div", "xpath:idRelative"],
|
||||||
|
["xpath=//div/ul[2]/li/a/div", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "12d74fd3-1d17-4edd-92b7-41fc8beec0f8",
|
||||||
|
"comment": "",
|
||||||
|
"command": "storeText",
|
||||||
|
"target": "css=.language > a",
|
||||||
|
"targets": [
|
||||||
|
["css=.language > a", "css:finder"],
|
||||||
|
["xpath=(//a[contains(text(),'English')])[2]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='service-navigation']/div/ul/li/a", "xpath:idRelative"],
|
||||||
|
["xpath=(//a[@href='http://www.mathematik.uni-marburg.de/modulhandbuch/20232/index_en.html'])[2]", "xpath:href"],
|
||||||
|
["xpath=//div/div/ul/li/a", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "lang"
|
||||||
|
}, {
|
||||||
|
"id": "7fe0d220-c16b-40a2-b19f-e75455153e4b",
|
||||||
|
"comment": "",
|
||||||
|
"command": "if",
|
||||||
|
"target": "${lang} === \"ENGLISH\"",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "b218e2bb-1558-4cbd-864a-40dcb369fd61",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "css=.language > a",
|
||||||
|
"targets": [
|
||||||
|
["css=.language > a", "css:finder"],
|
||||||
|
["xpath=(//a[contains(text(),'English')])[2]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='service-navigation']/div/ul/li/a", "xpath:idRelative"],
|
||||||
|
["xpath=(//a[@href='http://www.mathematik.uni-marburg.de/modulhandbuch/20232/index_en.html'])[2]", "xpath:href"],
|
||||||
|
["xpath=//div/div/ul/li/a", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "055f98d5-922f-4700-89f1-0c8784c9bf5d",
|
||||||
|
"comment": "",
|
||||||
|
"command": "end",
|
||||||
|
"target": "",
|
||||||
|
"targets": [],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "28b8b697-3849-49ae-9811-70361b67f489",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "xpath=(//a[text()='M.Sc. Computer Science'])[2]",
|
||||||
|
"targets": [
|
||||||
|
["css=ul > ul:nth-child(1) > li:nth-child(7) > a", "css:finder"],
|
||||||
|
["xpath=(//a[contains(text(),'M.Sc. Computer Science')])[2]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='content']/section/div/ul/ul/li[7]/a", "xpath:idRelative"],
|
||||||
|
["xpath=(//a[@href='http://www.mathematik.uni-marburg.de/modulhandbuch/20232/MSc_Computer_Science/index.html'])[2]", "xpath:href"],
|
||||||
|
["xpath=//ul/ul/li[7]/a", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "e0097e8b-8c39-412c-a5e5-990b867c26db",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "linkText=Alphabetical index of all modules in this course",
|
||||||
|
"targets": [
|
||||||
|
["linkText=Alphabetical index of all modules in this course", "linkText"],
|
||||||
|
["css=p:nth-child(6) > a:nth-child(1)", "css:finder"],
|
||||||
|
["xpath=//a[contains(text(),'Alphabetical index of all modules in this course')]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='content']/section/div/p[2]/a", "xpath:idRelative"],
|
||||||
|
["xpath=//a[@href='http://www.mathematik.uni-marburg.de/modulhandbuch/20232/MSc_Computer_Science/alphabetical.html']", "xpath:href"],
|
||||||
|
["xpath=//p[2]/a", "xpath:position"],
|
||||||
|
["xpath=//a[contains(.,'Alphabetical index of all modules in this course')]", "xpath:innerText"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "1dbbf4aa-cfef-4087-8c0a-1129855b6bcf",
|
||||||
|
"comment": "",
|
||||||
|
"command": "click",
|
||||||
|
"target": "linkText=Software Quality",
|
||||||
|
"targets": [
|
||||||
|
["linkText=Software Quality", "linkText"],
|
||||||
|
["css=li:nth-child(234) > a", "css:finder"],
|
||||||
|
["xpath=//a[contains(text(),'Software Quality')]", "xpath:link"],
|
||||||
|
["xpath=//div[@id='content']/section/div/ul/li[234]/a", "xpath:idRelative"],
|
||||||
|
["xpath=//a[@href='http://www.mathematik.uni-marburg.de/modulhandbuch/20232/MSc_Computer_Science/Compulsory_Elective_Modules_in_Computer_Science/Software_Quality.html']", "xpath:href"],
|
||||||
|
["xpath=//li[234]/a", "xpath:position"],
|
||||||
|
["xpath=//a[contains(.,'Software Quality')]", "xpath:innerText"]
|
||||||
|
],
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"id": "6b7420ff-721a-43f2-8077-6046d8459eae",
|
||||||
|
"comment": "",
|
||||||
|
"command": "verifyText",
|
||||||
|
"target": "css=h1 > b",
|
||||||
|
"targets": [
|
||||||
|
["css=h1 > b", "css:finder"],
|
||||||
|
["xpath=//div[@id='content']/section/div/h1/b", "xpath:idRelative"],
|
||||||
|
["xpath=//h1/b", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "CS 661 — Software Quality"
|
||||||
|
}, {
|
||||||
|
"id": "1322ec2c-b71d-4e8d-ae6f-2dd6190455cf",
|
||||||
|
"comment": "",
|
||||||
|
"command": "verifyText",
|
||||||
|
"target": "css=tr:nth-child(2) > td:nth-child(2)",
|
||||||
|
"targets": [],
|
||||||
|
"value": "Lecture (4 SWS), recitation class (2 SWS),\\n270 hours (90 h attendance, 180 h private study)"
|
||||||
|
}, {
|
||||||
|
"id": "3c74fc20-6526-4a7f-9cd5-72caa0e20c02",
|
||||||
|
"comment": "",
|
||||||
|
"command": "verifyText",
|
||||||
|
"target": "css=tr:nth-child(3) > td:nth-child(2)",
|
||||||
|
"targets": [
|
||||||
|
["css=tr:nth-child(3) > td:nth-child(2)", "css:finder"],
|
||||||
|
["xpath=//div[@id='content']/section/div/table/tbody/tr[3]/td[2]", "xpath:idRelative"],
|
||||||
|
["xpath=//tr[3]/td[2]", "xpath:position"]
|
||||||
|
],
|
||||||
|
"value": "9 CP\\nCourse requirement(s): Successful completion of at least 50 percent of the points from the weekly exercises as well as at least 2 presentations of the tasks.\\nExamination type: Oral examination (individual examination) or written examination"
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"suites": [{
|
||||||
|
"id": "8deb4f55-ae91-4e30-98b5-f255c71951d3",
|
||||||
|
"name": "Default Suite",
|
||||||
|
"persistSession": false,
|
||||||
|
"parallel": false,
|
||||||
|
"timeout": 300,
|
||||||
|
"tests": ["8a49f466-f633-4340-9203-f86651654500"]
|
||||||
|
}],
|
||||||
|
"urls": ["https://www.google.de/"],
|
||||||
|
"plugins": []
|
||||||
|
}
|
BIN
Homework_12.pdf
Normal file
BIN
Homework_12.pdf
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user