Selenium webdriver-识别元素

时间:2013-05-23 11:57:59

标签: selenium selenium-webdriver

我是自动化(selenium)的新手。场景:在任何移动网站上识别移动标题的元素(例如:flipkart)。我想知道除了href / title之外是否还有其他方法可以识别使用selenium webdriver的元素?我想让它变得通用,因为手机可能在一段时间后无法使用。

http://www.flipkart.com/mobiles/sony~brand/pr?sid=tyy,4io&_pop=flyout&otracker=hp_submenu_new_mobile_Mobiles_Sony#jumpTo=228|20

将此网址用于该方案。

我使用Java作为语言.Selenium版本:1.10.0 根据我的知识,我们可以使用id,name,css和xpath来识别元素,但是当我必须总是选择第二个电话标题时,我该怎么做,无论它是哪个电话。如何做我为此创建了xpath?还是有其他方法可以这样做?请告诉我。

这些是上述网址的第一部和第二部手机的html标签:

<a class="fk-display-block" title="Sony Xperia SP (Black)" href="/sony-xperia-sp/p/itmdjmz3z9hgbhdm?pid=MOBDJMZ2U6JFHZZH&ref=ab7f3941-7bfb-4119-a446-555c42f4248a"> Sony Xperia SP (Black) </a>

<a class="fk-display-block" title="Sony Xperia Miro (Black)" href="/sony-xperia-miro/p/itmdda7crgzwqzhp?pid=MOBDDA5Y6BKX6VHR&ref=f8fea7a0-d9c0-4264-8fc9-959f09407436"> Sony Xperia Miro (Black) </a>

我们可以看到,两部手机之间的唯一区别是标题,href和链接文字。所有手机的课程都是相同的。

4 个答案:

答案 0 :(得分:2)

您可以通过以下方式之一:

driver.findElement(By.linkText("Sony Xperia Miro (Black)"));

OR,

driver.findElement(By.xpath("//a[@title='Sony Xperia Miro (Black)']"));

答案 1 :(得分:1)

如果您使用的是Java,则可以使用By.linkTextBy.partialLinkText

WebElement element = driver.findElement(By.linkText("Sony Xperia Miro (Black)"));
WebElement element = driver.findElement(By.partialLinkText("Sony"));

对于By.partialLinkText,如果您希望许多元素与部分链接文字匹配,则可能需要使用findElements()方法:

List<WebElement> elements = driver.findElements(By.partialLinkText("Sony"));

答案 2 :(得分:1)

火虫

Firebug是一个Firefox附加组件,我们将用它来检查被测Web应用程序的HTML元素。

  • 使用Firefox导航到Firebug的下载页面https://getfirebug.com/downloads/

  • 点击下载链接。

  • 点击“添加到Firefox”按钮。
  • 点击“立即安装”。

    启动Firebug 按F12或单击Firefox窗口右上角的Firebug按钮。

FirePath

FirePath是一个Firebug扩展,它添加了一个开发工具来编辑,检查和生成XPath表达式,CSS选择器和JQuery选择器。

  • 使用Firefox导航到FirePath的下载页面
    https://addons.mozilla.org/en-US/firefox/addon/firepath/

  • 点击“添加到Firefox”按钮。

  • 点击“立即安装”。

    启动FirePath
    按F12或点击Firefox窗口右上角的Firebug按钮,FirePath随FireBug一起启动

WebDriver元素定位器

WebDriver Element Locator也是一个Firefox附加组件。此附加组件旨在通过简化Web元素的位置来支持和加速WebDriver脚本的创建。

  • 使用Firefox导航到WebDriver Element Locator的下载页面
    https ://addons .mozilla .org/en-US /firefox/ addon/ element- locator- for-webdriv/
    remove the spaces between the link
  • 点击“添加到Firefox”按钮。
  • 点击“立即安装”。

答案 3 :(得分:1)

检查您的语言的文档

您可以根据xpath,css_selector,class_name,id,name,tag_name,link_text或partial_link_text找到元素或元素列表