【发布时间】:2011-08-25 21:38:56
【问题描述】:
我正在将我的测试套件从 Selenium 1 迁移到 WebDriver。我在单击包含美国可点击州地图的页面上的元素时遇到问题。
使用 Selenium 1 我将执行以下操作以从地图中选择特定状态。
selenium.click("css=area[alt=North Carolina]");
在 Selenium 2 中,我将其转换为
driver.findElement(By.cssSelector("area[alt=North Carolina]")).click();
WebDriver 实际上选择了不同的状态。这不是时间问题,选择了一个状态它只是不正确的状态。我尝试用相同的结果为 xpath 切换 cssselector。
不确定这是否与this issue有关
操作系统:Win XP
浏览器:在 IE 8 和 FF 5 & 6 上测试
硒:2.5.0
页面代码示例
<area alt="California" shape="POLY" coords="10,60,29,68,25,98,56,146,51,167,17,138,3,70" href="javascript:LoadCategory('CA');">
【问题讨论】:
-
你确定这些状态是独特的元素吗? List
states = driver.findElements(By.cssSelector("area[alt=North Carolina]")); System.out.println(states.size); //这是1吗?有没有公共网站可以让我试试这个? -
有趣。如果我在名称中没有空格的州(加利福尼亚等)执行您提供的测试,我会得到 1。如果我使用带空格的州,我会收到错误消息。
"An invalid or illegal string was specified"尽管如此,即使使用这种方法来选择没有空格的状态,它仍然会选择错误的状态(或根本没有选择)。这是一个示例网站:link -
接下来,如果 alt 标签包含空格,您必须将其包装起来以便 webdriver 找到它。 IE。
(By.cssSelector("area[alt='North Carolina']"))唉,还是没有选择正确的元素。