Я не могу автоматизировать кнопку переключения в зависимости от ее текущего состояния - PullRequest
0 голосов
/ 05 сентября 2018

в моем случае я хочу сначала проверить, включена ли кнопка переключения. Если он выключен, я хотел бы включить его, и если он уже включен, он должен оставаться включенным. Я использовал isSelected, isEnabled и isDisplayed, но ни один из этих методов не оспаривает статус кнопки.

**Following is my trial code:**

if(driver.findElement(By.xpath("(//span[@class='toggle-handle btn btn-default'])[2]")).isSelected()) {
System.out.println("is turned on");
}
else {
driver.findElement(By.xpath("(//div[@class='feed-toggle-container brand-integrity-site-visibility'])[2]")).click();
}

HTML:

<tr>
    <td>Atlas Copco Brand Integrity Site</td>
    <td>ac.website.com</td>
    <td>
        <div class="feed-toggle-container brand-integrity-site-visibility">
            <div class="toggle btn btn-default off" data-toggle="toggle" style="width: 73px; height: 32px;">
                <input class="feed-toggle" data-url="https://admin.stage.cwsplatform.com/api/brand-integrity-site/7" data-toggle="toggle" data-onstyle="success" name="visible_to_dealer" type="checkbox" value="1">
                <div class="toggle-group">
                    <label class="btn btn-success toggle-on">On</label>
                    <label class="btn btn-default active toggle-off">Off</label><span class="toggle-handle btn btn-default"></span>
                </div>
            </div>
        </div>
    </td>
    <td>
        <a target="_blank" href="http://ac.website.com.live.stage.cwsplatform.com/cws-login">
            <button class="btn btn-primary">Manage Content</button>
        </a>
    </td>
    <td>
        <a target="_blank" href="http://ac.website.com.demo.stage.cwsplatform.com/cws-login">
            <button class="btn btn-default">Manage Content</button>
        </a>
    </td>
</tr>

feed-toggle-container марки-целостности-сайта-видимости. Нажатие на этот класс в основном включает и выключает кнопку. Если он включен, он выключит его и наоборот. Использование приведенного выше кода просто отключает состояние «Вкл» вместо того, чтобы просто оставлять его включенным.

HTML, когда кнопка включена:

<label class="btn btn-success toggle-on">On</label>

HTML при выключенной кнопке:

<label class="btn btn-default active toggle-off">Off</label>

1 Ответ

0 голосов
/ 08 сентября 2018

Вы можете выполнить сценарий ниже для того же:

  • Вы должны сначала проверить его текущее состояние
  • Вы можете проверить на основе значения класса
  • Получив значение класса, Вы можете проверить и проверить его состояние
  • И так вы можете обрабатывать пользовательские действия

//This is to Locate on label
By locateOnLabel = By.xpath("//div[@class='toggle-group']//label[contains(text(),'On')]");


//This is to Locate off label    
By locateOffLabel = By.xpath("//div[@class='toggle-group']//label[contains(text(),'Off')]");

//Retrieve their class, it given identification whether its On/Off
String getLabelONClass = driver.findElement(locateOnLabel).getAttribute("class");
String getLabelOFFClass = driver.findElement(locateOffLabel).getAttribute("class");

//compare class values, and Perform actions
if(getLabelOFFClass.equals("btn btn-default active toggle-off)) {      
       Click that Webelement if you want to turn on 
}
   else if (getLabelONClass.equals("btn btn-success toggle-on")) {                   
       You can notify message, That Button is already ON
  }
...