🏆 151 ΠΊΡΡΡ Π·Π° 1 ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ: Ρ Π²Π°ΡΠΈΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ β Π±Π΅ΡΠΈ Π²ΡΠ΅ ΠΈ ΡΡΠ°Π·Ρ!

ΠΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ β 151 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΡ Π½Π° OTUS ΡΠ΅ΠΉΡΠ°Ρ!
Π’Π΅Ρ Π½ΠΎΠΌΠΈΡ ΠΌΡΠΈΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄, Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΡΠ°ΡΡΡΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌ. OTUS ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΠΊΡΡΡΡΡ ΡΡΡΠΊΡ β ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Π½Π° 151 ΠΊΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ IT!
-
ΠΠΎΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° OTUS ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ:
- ΠΠΎΡΡΡΠΏ ΠΊ 151 ΠΊΡΡΡΡ ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²
- Π 3 ΡΠ°Π·Π° Π²ΡΠ³ΠΎΠ΄Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ
- ΠΠΎ 3 ΠΊΡΡΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΡΡΠ°Ρ
- Π‘Π²ΠΎΠ±ΠΎΠ΄Π° Π²ΡΠ±ΠΎΡΠ° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ β ΠΌΠ΅Π½ΡΠΉ ΡΡΠ΅ΠΊΠΈ ΠΊΠΎΠ³Π΄Π° ΡΠ³ΠΎΠ΄Π½ΠΎ
ΠΠ·ΡΡΠ°ΠΉ Π½ΠΎΠ²ΠΎΠ΅, ΡΠ°Π·Π²ΠΈΠ²Π°ΠΉΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΠΌΠΏΠ΅, ΠΌΠ΅Π½ΡΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ β ΠΏΠΎΠ΄ΠΏΠΈΡΠΈΡΡ Π½Π° OTUS ΠΈ ΠΏΡΠΎΠΊΠ°ΡΠΈΠ²Π°ΠΉ ΡΠΊΠΈΠ»Ρ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ!
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576. Erid 2VtzqupFnNL
ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ, Π±ΡΠ²Π°Π΅Ρ Π½Π΅ Π·Π½Π°Π΅ΡΡ, ΠΊΠ°ΠΊΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ΅Π±Π΅ ΠΏΠΎΠ΄ΠΊΠΈΠ½Π΅Ρ Π½ΠΎΠ²ΡΠΉ Π΄Π΅Π½Ρ. ΠΠΎΠΆΠ΅Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΈ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² UI c Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ, ΠΏΡΠΈΠ΄ΡΠΌΠ°Π΅ΠΌ Π·Π°Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ, Π½ΠΎ Π½Π° Π΄Π΅Π»Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ. ΠΡΡΡΡ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π·Π²ΡΡΠ°ΡΡ ΡΠ°ΠΊ: Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Paint ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ.
Π‘ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ:
- ΠΡΠΊΡΡΡΡ Online Paint.
- ΠΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ½ΠΎΠΊ.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΌ ΡΠ΅ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΠΈΠ½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Ρ ΡΠ°ΡΠΏΠΈΡΡΠ²Π°ΡΡ Π΄ΠΎΠ»Π³ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ UI ΡΠ΅ΡΡΠ° Π½Π° Selenium, Π° ΡΠΎΡΡΠ°Π²Π»Ρ ΡΠ΅ΠΊ-Π»ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°Π±ΡΠ»ΠΈ (Π΄ΠΎΠ±Π°Π²Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ Π² ΡΡΠΎΡ ΡΠ°Π· ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ):
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Selenium ΠΈ Junit Π²
pom file
:
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
2. Π‘ΠΊΠ°ΡΠ°ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Selenium Π² main/resources
(Π² ΡΡΠΎΠΌ ΡΠ΅ΡΡΠ΅ Ρ ΠΌΠ΅Π½Ρ chromdriver
):

3. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° (Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π²ΡΠ½Π΅ΡΡ Π² @Before
):
@Before
public void start(){
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "eager");
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver");
options.addArguments("--start-maximized");
options.addArguments("--remote-debugging-port=9222");
driver = new ChromeDriver(options);
}
4. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΊΡΡΡΠΈΡ WebDriver
:
@After
public void stop(){
driver.quit();
driver = null;
}
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΡ https://jspaint.app/ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΆΠ΅ ΡΡΠΎ Π·Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠΈΡΠΎΠ²Π°ΡΡ.

ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ canvas
. Canvas
β ΡΠ»Π΅ΠΌΠ΅Π½Ρ HTML5, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΡΡ
ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΎΠ±ΡΡΠ½ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript.
ΠΠ»Ρ ΠΏΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ:
@Test
public void simplePaint(){
driver.get("https://jspaint.app/");
WebElement canvas = driver.findElement(By.xpath("//canvas[@class='main-canvas']"));
driver.findElement(By.xpath("//div[@title='ΠΠΈΡΡΡ']/span")).click();
Actions builder = new Actions(driver);
builder.clickAndHold(canvas).moveByOffset(0, -100).
moveByOffset(-100,0).
moveByOffset(0,100).
moveByOffset(100,0).release().perform();
}
ΠΡΠΎΠ±Π½ΡΠΉ ΡΠ΅ΡΡ ΠΏΡΠΎΡΠ΅Π» Π»Π΅Π³ΠΊΠΎ. ΠΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° gif-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ:

Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ»ΠΎΠΆΠ½ΠΈΠΌ Π·Π°Π΄Π°ΡΡ β Π½Π°ΡΠΈΡΡΠ΅ΠΌ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊ.
Π¨Π°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ΅ΡΡΠ΅:
- ΠΡΠΊΡΡΡΡ Online Paint.
- ΠΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊ.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, Π΄Π²ΠΈΠ³Π°Ρ ΠΏΠ΅ΡΠΎΠΌ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ. ΠΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavascriptExecutor.
JavascriptExecutor
β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Selenium, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ HTML DOM Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΊΠΎΠ΄ Π½Π° JavaScript. Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ°, Π½ΠΎ ΡΠ΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ ΠΏΠ»ΡΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΡΡΠΎΠΌ β ΡΠ΅ΡΠ°ΡΡ Π²Π°ΠΌ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ JavascriptExecutor
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅ΡΡΠ°Ρ
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΌΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΏΠ»Π°Π½Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
@Test
public void paintSmile(){
// ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΡ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΠ΅ΠΉΠ½ΡΠ°
driver.get("https://jspaint.app/");
// ΡΠΈΡΡΠ΅ΠΌ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊ
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript("var canvas = document.getElementsByClassName(\"main-canvas\");\n" +
"console.log(canvas);" +
"ctx.beginPath();"+
"ctx.arc(75,75,50,0,Math.PI*2,true);"+
"ctx.moveTo(110,75);"+
"ctx.arc(75,75,35,0,Math.PI,false);"+
"ctx.moveTo(65,65);"+
"ctx.arc(60,65,5,0,Math.PI*2,true);"+
"ctx.moveTo(95,65);"+
"ctx.arc(90,65,5,0,Math.PI*2,true);"+
"ctx.stroke();");
} else {
throw new IllegalStateException("This driver does not support JavaScript!");
}
// ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ
driver.findElement(By.xpath("//div[@class='menu-button ΡΠ°ΠΉΠ»-(f)-menu-button']")).click();
driver.findElement(By.xpath("//tr[3]")).click();
driver.findElement(By.xpath("//button[.='Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ']")).click();
}
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΊΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ:

ΠΠΊΠ°Π·Π°Π»ΠΎΡΡ, Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π² ΠΎΠ½Π»Π°ΠΉΠ½-ΠΠ΅ΠΉΠ½ΡΠ΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ-ΡΠΎ ΠΏΠΎΠ½ΡΡΡ, Ρ ΠΊΠ°ΠΊΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡΠ²ΠΎΠ΄Ρ
Π‘Π°ΠΌΡΠ΅ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ β ΡΠ°ΠΌΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅. ΠΠΎ ΠΈ ΠΎΠ½ΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ. ΠΡΠ»ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΡ, ΡΠΎ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅ΡΡΡ. ΠΠ°, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ, Π½ΠΎ ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠΈΡ. Π’ΡΡΠ΄Π½ΠΎΡΡΠΈ Π·Π°ΠΊΠ°Π»ΡΡΡ. Π£Π΄Π°ΡΠΈ!
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
- ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΡΡΠ΅ΠΊΠΈ ΠΈΠ· Π―Π½Π΄Π΅ΠΊΡ.ΠΡΠ·ΡΠΊΠΈ Π² Spotify Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π°Π²ΡΠΎΡΠ΅ΡΡ Web UI Π½Π° Python ΠΈ Selenium Π·Π° 7 ΡΠ°Π³ΠΎΠ²: ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²
- ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡ Π² 4 ΡΡΠ°ΠΏΠ°?
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ