Недопустимая исключительная ситуация селектора для щелчка элемента с использованием сайта Selenium with Cucumber for W3Schools - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь использовать следующий код Selenium, используя сайт Cucumber for W3Schools.Когда я нажимаю кнопку «Попробуйте сами», она переходит на другую страницу, открывающую другое окно, и элемент управления также переходит к новому окну, открытому .Итак, в открывшемся новом окне, если я нажимаю кнопку запуска, выдается исключение:

неверный селектор

код:

//This clicks on the Try it yourself button
@FindBy(how=How.XPATH,using="//*[@id=\"main\"]/div[4]/p/a")
    private WebElement TryItYourself;
public void TryItYourSelfClick()
        {
            TryItYourself.click();  
        }
//Now,a new window opens up where I want to click on Run Button
    @FindBy(how=How.LINK_TEXT,using="Run >>")
    private WebElement RunButton;
public void RunClick()
        {
            RunButton.click();
        }

Calling Run Method
@Then("^a new window should appear$")
    public void a_new_window_should_appear() {
        System.out.println("Run button before Clicking");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        obj1.RunClick();
        System.out.println("Run after clicking");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
         Set <String> handle=driver.getWindowHandles();
         String firstWinHandle=driver.getWindowHandle();
         String WinHandle=handle.iterator().next();
         if(WinHandle!=firstWinHandle)
         {
             driver.switchTo().window(WinHandle);
             System.out.println("Working for new window opened");
         }

}

почему возникает это недопустимое исключение селектора?

HTML код:

<div class="w3-bar w3-light-grey" style="border-top:1px solid #f1f1f1;overflow:auto">
  <a id="tryhome" href="https://www.w3schools.com" target="_blank" title="w3schools.com Home" class="w3-button w3-bar-item topnav-icons fa fa-home" style="font-size:28px;color:#999999;margin-top:-2px"></a>
  <a href="javascript:void(0);" onclick="openMenu()" id="menuButton" title="Open Menu" class="w3-dropdown-click w3-button w3-bar-item topnav-icons fa fa-menu" style="font-size:28px;color:#999999;margin-top:-2px"></a>
  <a href="javascript:void(0);" onclick="click_savebtn()" title="Save" class="w3-button w3-bar-item topnav-icons fa fa-save" style="font-size:28px;color:#999999;margin-top:-2px"></a>
  <a href="javascript:void(0);" onclick="restack(currentStack)" title="Change Orientation" class="w3-button w3-bar-item topnav-icons fa fa-rotate" style="font-size:28px;color:#999999;margin-top:-2px"></a>
  <button class="w3-button w3-bar-item w3-green w3-hover-white w3-hover-text-green" onclick="submitTryit(1)">Run »</button>
  <span class="w3-right w3-hide-medium w3-hide-small" style="padding:8px 8px 8px 8px;display:block"></span>
  <span class="w3-right w3-hide-small" style="padding:8px 0;display:block;float:right;"><span id="framesize">Result Size: <span>433 x 439</span></span></span>
</div>

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Это сообщение об ошибке ...

invalid Selector Exception

... означает, что how = How.LINK_TEXT, использующий = "Run >>" , не был допустимым селектором.

Основная проблема заключается в том, что элемент представляет собой не тег LINK_TEXT, а тег <button> с текстом Run ».

Решение

Изменитьстратегия Locator выглядит следующим образом:

@FindBy(how=How.XPATH,using="//button[contains(.,'Run »')]")
//or
@FindBy(how=How.XPATH,using="//button[contains(.,'Run')]")
private WebElement RunButton;
0 голосов
/ 05 июня 2018

посмотрите здесь https://www.seleniumhq.org/exceptions/invalid_selector_exception.jsp нам нужно избегать использования >> как можно, поэтому попробуйте использовать другой локатор, избегая этих

0 голосов
/ 05 июня 2018

Я не знаком с огурцом, но есть ли у него возможность использовать cssSelector?

Я посмотрел на кнопку и нашел

body .trytopnav button

в качестве допустимого селектора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...