我试图自动化一个网站,该网站也有一个链接到其法国网站。当我启动这个法国网站时,所有产品描述,货币等都会变成法语。 我的问题与使用WebDriver自动化这个法语网站有关。
目前Iam将法语单词(产品名称/描述等)作为普通字符串传递给我的Java Selenium代码,它似乎有效。
WebElement el = driver.findElement(By.id("nav-nouveautes"));
String str = el.findElement(By.className("highlight")).getText();
String searchItem = "Tri, table d'appoint, frêne naturel";
driver.findElement(By.id("search")).sendKeys(searchItem);
driver.findElement(By.className("btns search")).click();
这是自动化非英语网站的正确方法 - 按原样传递字符串并以相同方式检索文本吗?在某些链接中,他们提到了将浏览器的区域设置更改为特定语言。这有必要吗? 尝试使用谷歌搜索,但无法找到一个好的答案。
我想使用FitNesse来编写测试
这是html源码的几个片段:
<label for="search" style="display:none;">Recherche :</label>
<input id="search" name="q" value="" class="input-text" />
<!--
<button type="submit" title="Recherche" class="button"><span><span>Recherche</span></span></button>
-->
<button class="btns search" type="submit">
</button>
<div id="slide_one" class="xxxxxxWorksSlide">
<p id="slideOne_title">En boutique, un fauteuil de designer <br> se vend en général</p>
<span class="price-dashed" id="slideOne_left"></span>
<p id="slideOne_price">1 500 €</p>
<span class="price-dashed" id="slideOne_right"></span>
<p id="slideOne_copy">Son design a de quoi vous xxx. Mais sa fabrication coûte seulement 250 €. Soit une marge de 500 %.</p>
<a id="slideOne_btns" class="btns" title="" href="#"><span class="button_label">xxx change les règles<span class="chevron">»</span></span></a>
</div>
很抱歉,如果这是一个非常愚蠢的问题。 感谢您查看我的帖子。
答案 0 :(得分:0)
这是自动化非英语网站的正确方法 - 按字母顺序传递字符串并以相同方式检索文本吗?
这不是错误的方式。我个人认为这是最简单的方法,但你需要确保你有UTF-8作为所有文件的编码,否则你会遇到与其他人一起查看文件的问题。< / p>
在某些链接中,他们提到了将浏览器的区域设置更改为特定语言。这有必要吗?
仅在您明确测试make sure that the language works when the browsers locale is fr
当然,我认为最佳做法是使用该语言打开基本网址。例如:http://example.com?lang=fr
答案 1 :(得分:0)
在某些链接中,他们提到了更改浏览器的区域设置 特定的语言。这有必要吗?
在浏览器中设置区域设置将导致它更改随每个请求发送的Accept-Language
标头。
这是否会对您的测试产生影响 - 而大多数网站都不会将您从特定版本重定向,如果您具体要求它,他们可能正在使用您的区域设置,从此标题中收集,以不同的格式呈现货币或日期等内容。
有些网站更进一步,例如新的BBC radio player,它只使用区域设置来呈现翻译的内容,而不是使用多个网址。
简而言之,重要性取决于您正在测试的内容(希望您事先了解其功能:))
答案 2 :(得分:0)
要支持多种语言,您可以使用 Java Resource Bundle API 。这样,您只需为每种新语言添加新的资源包文件,而无需更改任何代码。
步骤1)将SITE-LANG作为vmArguments发送到您的测试。
java -DSITE-LANG=fr
步骤2)在类路径中定义资源包文件MyResources_fr.properties。
mySearchItemKey=Tri, table d'appoint, frêne naturel
步骤3)根据系统属性在beforeSuite或beforeTest期间加载资源包。
String siteLanguage = System.getProperty("SITE-LANG");
ResourceBundle myResources = ResourceBundle.getBundle("MyResources", new Locale(siteLanguage ));
步骤4)删除文本的硬编码并从资源包中访问值。
// Your code will become
String searchItem = myResources.getString("mySearchItemKey");
driver.findElement(By.id("search")).sendKeys(searchItem);