2

私は日食ネオン、セレン webdriver 2.53.0、および firefox 45.3.0 esr に取り組んでいます。サイトで唯一のチェックボックスにセレンマークを付けることができません。ここに私のテストスクリプトがあります:

package testy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class rejestr {
    public WebDriver driver;
    @BeforeMethod
    public void beforeMethod() {
        driver = new FirefoxDriver();
        driver.manage().window().maximize();
        driver.navigate().to("http://dev.wedkarz.pzw.pl/#/login");
    }
    @Test
    public void f () throws InterruptedException { 
        driver.findElement(By.className("nav-item")).click();
        driver.findElement(By.id("firstName")).sendKeys("Jan");
        driver.findElement(By.id("lastName")).sendKeys("Nowak");
        driver.findElement(By.id("email")).sendKeys("jnowak@o2.pl"); 
        driver.findElement(By.id("plainPassword")).sendKeys("password");
        new Select(driver.findElement(By.id("district"))).selectByVisibleText("Okręg     PZW w Bydgoszczy");
        new Select(driver.findElement(By.id("circle"))).selectByVisibleText("Koło PZW nr 31");
        driver.findElement(By.id("fishingLicense")).sendKeys("12345678990");
        driver.findElement(By.id("squaredOne")).click();
    }
    @AfterMethod
    public void afterMethod() {
        System.out.print("Test zakończony powodzeniem");
        driver.quit();
    }
}

そして、それはチェックボックスのhtmlコードです:

<div class="row form-group m-b-lg">
              <div class="squaredOne">
                <input id="squaredOne" name="check" type="checkbox" value="None" class="ng-untouched ng-valid ng-dirty">
                <label for="squaredOne">
                  <p>Wyrażam zgodę na otrzymywanie od PZW informacji<br> o charakterze promocyjnym i reklamowym
                  przekazywanych drogą elektroniczną, w tym przesyłanych z wykorzystaniem telekomunikacyjnych
                  urządzeń końcowych (np. komputer, tablet).</p>
                </label>
              </div>
              <span class="help-block">

              </span>
            </div>

私は2日間それと戦ってきたので、あなたの助けに本当に感謝します.

4

2 に答える 2

3

IE ブラウザを使用している場合は、少し注意が必要です -

if (driver.Capabilities.BrowserName.Equals(“internet explorer"))
    driver.findElement(By.id("squaredOne").SendKeys(Keys.Space);
else
    driver.findElement(By.id("squaredOne").Click();

または、Xpath を使用して要素に到達してみてください

driver.findElement(By.xpath("//input[@type='checkbox']")).click();

それでもうまくいかない場合は、クラス名を使用してみてください

WebElement mybox = driver.findElement(By.className("squaredOne"));     
mybox.click();
于 2016-09-15T12:09:41.737 に答える