команда click не будет работать в выпадающем списке? - PullRequest
0 голосов
/ 02 декабря 2011

Я пытаюсь щелкнуть элемент в combobox.Этот элемент должен загрузить новую страницу.Но браузер только выбирает элемент, не открывая новую страницу.Это фрагмент:

package org.example.tests;

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;

import javax.swing.JOptionPane;

import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class TestQuickLinks {
    private WebDriver driver;
    private String baseUrl="http://www.stts.edu";
    private StringBuffer verificationErrors = new StringBuffer();
    @Before
    public void setUp() throws Exception {
        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get(baseUrl);
    }

    @Test
    public void testQuickLinks() throws Exception {
        driver.findElement(By.id("link")).click();
        driver.findElement(By.xpath("//option[@value='Organisasi']")).click();
        Thread.sleep(5000);
        try {
            assertEquals("Organisasi STTS - Tentang STTS - Sekolah Tinggi Teknik Surabaya", driver.getTitle());
        } catch (Error e) {
            verificationErrors.append(e.toString());
            JOptionPane.showMessageDialog(null, "this is not the correct page");
        }
    }
}

Я попытался щелкнуть по элементу вручную, и он отлично работает.Я также попытался использовать тот же код на фиктивной странице, и он отлично работает.Может кто-нибудь мне помочь?Я пытался спросить MIRC, но они игнорируют меня ...

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

Я бы порекомендовал вам не использовать метод byXpath. Вместо этого попробуйте использовать By.linkText, если это ссылка, или вы также можете использовать By.id/By.name.

.
0 голосов
/ 02 декабря 2011

Используйте свой класс SelectElement. Я не уверен, как именно это работает в Java, но вот метод C #:

public class TestQuickLinks {
    private WebDriver driver;
    private String baseUrl="http://www.stts.edu";
    private StringBuffer verificationErrors = new StringBuffer();
    @Before
    public void setUp() throws Exception {
        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get(baseUrl);
    }

    @Test
    public void testQuickLinks() throws Exception {
        WebElement thisElement =driver.FindElement(By.CssSelector("select[id='link']"));
        SelectElement select = new SelectElement(thisElement);
        select.SelectByIndex(3); //sets the combo box or select box to the desired value
        thisElement.Click(); //this is needed to activate the sites javascript onChange event.
    }
...