0

Selenium を使用して「検索」ボタンをナビゲートする際に問題があります。「検索」ボタンをクリックしてから、最初のページに戻ってもう一度クリックする必要があります。私のコードはこのボタンをナビゲートし、最初は完全に問題なくクリックします。その後、Web ページは最初の URL に戻ります。次に、同じボタンを再度ナビゲートするはずでしたが、機能しません...さまざまな方法(xpathなど)を使用しました。ここでの問題は何ですか?これが私の完全なコードです。それをコピーしてEclipseに貼り付けて、私が話していることを確認できます。

     import java.util.concurrent.TimeUnit;
     import org.openqa.selenium.By;
     import org.openqa.selenium.WebDriver;
     import org.openqa.selenium.WebElement;
     import org.openqa.selenium.chrome.ChromeDriver;

     public class Search {

public static void main(String[] args) throws InterruptedException {

    System.setProperty("webdriver.chrome.driver",
            "chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);

    // Getting the initial page
    driver.get("http://pqasb.pqarchiver.com/chicagotribune/advancedsearch.html");
    driver.findElement(By.xpath("//input[@value='historic']")).click();
    WebElement element = driver.findElement(By.name("QryTxt"));
    element.sendKeys("issue");
    driver.findElement(
            By.xpath("//input[@value='Search'][@onclick='return checkinput(this.form, 0);'][@type='button']"))
            .click();

    // Getting back to the initial page
    driver.get("http://pqasb.pqarchiver.com/chicagotribune/advancedsearch.html");
    driver.findElement(
            By.xpath("//input[@value='Search'][@onclick='return checkinput(this.form, 0);'][@type='button']"))
            .click();
    /**
     * This command does not execute. It is supposed to click on the button
     * "SEARCH" It worked well in the above identical code line, however now
     * it just does not recognize the existence of this button How can I
     * overcome this issue? I tried navigating this button by all different
     * means (xpath etc...)
     */
}

     }
4

1 に答える 1

1

例外はありますか?リダイレクト後に DOM は変更されましたか? どのブラウザを使用していますか?

<input type="button" onclick="return checkinput(this.form, 1);" value="Search"/>URLに再度アクセスした後、ボタンがに変わったことに気付きました。

だからあなたが必要です driver.findElement( By.xpath("//input[@value='Search'][@onclick='return checkinput(this.form, 1);'][@type='button']")).click();

于 2013-04-14T21:14:51.440 に答える