Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не получается выбрать option в контекстном меню Selenium Java

webdriver
java
Теги: #<Tag:0x00007f7b705c4278> #<Tag:0x00007f7b705c4138>

(Alex Alex) #1

Уважаемые. Пытаюсь нажать на правую кнопку мышки(это получилось) и выбрать какую-нибудь опцию(не получается). Пробую двигать стрелками вниз, но стрелки не двигаются. Вом мой код

import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

import java.net.MalformedURLException;

public class ContextMenu {
    private static WebDriver driver;

    @BeforeClass
    public static void SetUp() throws MalformedURLException {
        
        System.setProperty("webdriver.gecko.driver","C:\\Users\\user\\Downloads\\geckodriver-v0.21.0-win64\\geckodriver.exe");
        driver = new FirefoxDriver();
    }

    @Test
    public void ContextMenu(){
        driver.get("http://the-internet.herokuapp.com/");
        driver.findElement(By.xpath("//*[@id=\"content\"]/ul/li[6]/a")).click();
        Actions actions = new Actions(driver);

        WebElement element = driver.findElement(By.xpath("//*[@id=\"hot-spot\"]"));
        Actions action = new Actions(driver).contextClick(element).sendKeys(Keys.ARROW_UP).sendKeys(Keys.ENTER);

        action.build().perform();
    }
}

(Сергей Кузьмин) #2

по моему вам надо вниз

		actions.contextClick(element);
		actions.build().perform();
		sleep(1000);
		actions.sendKeys(Keys.ARROW_DOWN);
		actions.build().perform();
		sleep(1000);

		actions.sendKeys(Keys.ARROW_DOWN);
		actions.build().perform();
		sleep(1000);

		actions.sendKeys(Keys.ARROW_DOWN);
		actions.build().perform();
		sleep(1000);
		actions.sendKeys(Keys.ARROW_DOWN);
		actions.build().perform();
		sleep(1000);
		actions.sendKeys(Keys.ENTER);
		actions.build().perform();
		sleep(1000);

также если есть воможность плпробуйте разные версии selnium и firefoxCapture-context_menu


(Alex Alex) #3

Пробовал вниз - не работает.
Вы думаете проблема в версии браузера? Селениум и браузер у меня самые последние стоят, все равно стрелка вниз не работает.


(Сергей Кузьмин) #4

@alex_alex1 попробуйте необорот легаси 2.53 S + 44F ?


(Alex Alex) #5

вы меня простите, я пока не все понимаю и не понял вашего сообщения.
Вы имеете в виду версию селениума 2.53 и версию фарфокса 44?
Сейчас у меня версия файрфокса 61.0.2 , а вот версию селениума подскажите как посмотреть.?
Да и вообще, не странно ли, что обычное контекстное меню не работает в последних версиях ?


(Сергей Кузьмин) #6

релизы селениума на https://selenium-release.storage.googleapis.com/
они вполне могли поломать Actions в Selenim 3.x

релизы FF на https://ftp.mozilla.org/pub/firefox/releases/

я пользуюсь Vagrant
https://github.com/sergueik/selenium-fluxbox


(Сергей Кузьмин) #7

то есть я специално написал проект https://github.com/sergueik/selenium-fluxbox чтобы загружать легаси комбинации всего этого посмотрите может пригодится

Info
This project offers a standalone Ubuntu Trusty 14.04 LTS and Xenial 16.04 Vagrant box instances containing

Fluxbox
Tmux autologin
Stable release of Selenium Server 3.x or legacy 2.53 or other, user-specified version of Selenium
Chrome and Chrome Driver
Firefox with optional Gecko Driver...

(Alex Alex) #8

а что такое легаси?


(Сергей Кузьмин) #9