1

作为自动化测试的一部分,我需要在 Web 应用程序的文本框中键入带有特殊字符(“(PT 书籍)”)的字符串。

当我运行测试时,"("总是被跳过。没有问题")"。我开始调查它并尝试了所有需要shift key按下a 的特殊字符,("~!@#$%^&*()_+{}|:<>?")发现它总是跳过"(" and "&"。我还在 Google 搜索框上尝试了相同的测试,在这种情况下,所有字符都显示出来了。

我正在使用 Selenium Web 驱动程序(2.25.0)+ Java + Firefox(15.0.1)。我还必须setEnableNativeEvents在我的 Firefox 个人资料中填写错误。

我也使用 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 回答