Initial solution for task 1

This commit is contained in:
0nlineSam 2025-01-30 14:24:56 +01:00
parent 8555b77529
commit fa9c17c036
8 changed files with 176 additions and 0 deletions

38
Homework12/.gitignore vendored Normal file
View 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
View 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
View 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
View 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
View 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
View 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>

View File

@ -0,0 +1,7 @@
package org.example;
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

View File

@ -0,0 +1,67 @@
// Generated by Selenium IDE
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.time.Duration;
import java.util.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
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<>();
}
@AfterEach
public void tearDown() {
driver.quit();
}
@Test
public void ueb12() {
driver.get("https://duckduckgo.com/");
driver.manage().window().setSize(new Dimension(601, 683));
driver.findElement(By.id("searchbox_input")).sendKeys("uni marburg fb 12");
driver.findElement(By.cssSelector(".iconButton_size-20__O3lP5")).click();
driver.findElement(By.xpath("//span[contains(.,\'Philipps-Universität Marburg - Mathematik und Informatik\')]")).click();
//driver.get("https://www.uni-marburg.de/de/fb12");
//driver.findElement(By.id("APjFqb")).sendKeys("fb12 uni marburg");
//driver.findElement(By.name("btnK")).click();
//driver.findElement(By.xpath("//h3[contains(.,\'Mathematik und Informatik\')]")).click();
vars.put("buttonText", driver.findElement(By.cssSelector(".language > a")).getText());
if ((Boolean) js.executeScript("return (arguments[0] == \'ENGLISH\')", vars.get("buttonText"))) {
driver.findElement(By.cssSelector(".language > a")).click();
}
assertEquals("Department", driver.findElement(By.linkText("Department")).getText());
assertEquals("Studying", driver.findElement(By.linkText("Studying")).getText());
assertEquals("Research", driver.findElement(By.linkText("Research")).getText());
assertEquals("Research groups", driver.findElement(By.linkText("Research groups")).getText());
driver.findElement(By.cssSelector("ul:nth-child(2) > .has-children:nth-child(3) > a")).click();
assertEquals("Modules & Courses\nModules and Courses", driver.findElement(By.cssSelector("li:nth-child(4) > a > div")).getText());
driver.findElement(By.cssSelector("li:nth-child(4) > a > div")).click();
driver.findElement(By.cssSelector(".link-text-list:nth-child(6) .diazoadded")).click();
vars.put("buttonText", driver.findElement(By.cssSelector(".language > a")).getText());
if ((Boolean) js.executeScript("return (arguments[0] == \'ENGLISH\')", vars.get("buttonText"))) {
driver.findElement(By.cssSelector(".language > a")).click();
}
driver.findElement(By.cssSelector("ul > ul:nth-child(1) > li:nth-child(7) > a")).click();
driver.findElement(By.linkText("Alphabetical index of all modules in this course")).click();
driver.findElement(By.linkText("Software Quality")).click();
driver.findElement(By.cssSelector(".cols1")).click();
assertEquals("CS 661 — Software Quality", driver.findElement(By.cssSelector("h1 > b")).getText());
assertEquals("Lecture (4 SWS), recitation class (2 SWS),\n270 hours (90 h attendance, 180 h private study)", driver.findElement(By.cssSelector("tr:nth-child(2) > td:nth-child(2)")).getText());
assertEquals("Lecture (4 SWS), recitation class (2 SWS),\n270 hours (90 h attendance, 180 h private study)", driver.findElement(By.cssSelector("tr:nth-child(2) > td:nth-child(2)")).getText());
assertEquals("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", driver.findElement(By.cssSelector("tr:nth-child(3) > td:nth-child(2)")).getText());
}
}