1

自動テストの一環として、Web アプリケーションのテキスト ボックスに特殊文字 ("(PT books)") を含む文字列を入力する必要があります。

テストを実行すると、"("常にスキップされます。に問題はありません")"。調査を開始し、ashift keyを押す必要があるすべての特殊文字を試し("~!@#$%^&*()_+{}|:<>?")てみたところ、常にスキップされ"(""&". Google 検索ボックスでも同じテストを試みたところ、この場合、すべての文字が表示されました。

Selenium Web ドライバー (2.25.0) + Java + Firefox (15.0.1) を使用しています。またsetEnableNativeEvents、firefox プロファイルで false にする必要があります。

Internet Explorer を使用してこれも試しましたが、問題なく動作します。私のテストのほとんどはfirefoxで実行されるので、私はfirefoxに固執したいと思います。

私がテストしているWebアプリケーションに表示されない理由についてのアイデアは"("ありますか?"&"

これが私が使用しているコードです

FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents( false);
WebDriver driver = new FirefoxDriver(profile);

String searchTerm = "~!@#$%^&*()_+{}|:<>?" ;

String Link = "http://" ;

driver.get( "http://www.google.com");
driver.findElement(By. id("gbqfq")).sendKeys(searchTerm);

driver.get(Link);
driver.findElement(By. id("ctl00_ctl00_FindField_FindField_ctl00_findFieldLinks_basic")).click();
driver.findElement(By. id(UIMapping.SearchBoxId)).sendKeys(searchTerm);
4

1 に答える 1

0

私も同じ問題に直面しました。これは私が探している種類の解決策ではありませんが、当面はこれが役立ちます。より良い処理方法があれば、提案してください。

        driver = new FirefoxDriver();
        String searchKey = "TShirt(M)";
        driver.Navigate().GoToUrl("http://mywebsite.com/");

        if (searchKey.Contains("(") || searchKey.Contains("&"))
        {
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].value ='" + searchKey + "';", driver.FindElement(By.Id("search_text"))); 
        }
        else
        {
            driver.FindElement(By.Id("search_text")).SendKeys(searchKey);
        }

        driver.FindElement(By.Id("search_button")).Click();
于 2013-02-08T10:53:24.693 に答える