-2

我是自动化(硒)的新手。场景:在任何移动网站上识别移动标题的元素(例如: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

将此 url 用于场景。

我使用 Java 作为语言。Selenium 版本:1.10.0 据我所知,我们可以使用 id、name、css 和 xpath 来识别元素,但是当我必须始终选择第二个电话标题时该怎么办?它是哪部手机。如何为此创建 xpath?或者有其他方法吗?请告诉我。

这些是上述 url 的第一部和第二部手机的 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

4 回答 4

2

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

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

或者,

driver.findElement(By.xpath("//a[@title='Sony Xperia Miro (Black)']"));
于 2014-03-13T09:37:36.877 回答
1

火虫

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

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

  • 点击下载链接。

  • 单击“添加到 Firefox”按钮。
  • 点击“立即安装”。</p>

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

火路

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

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

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

  • 点击“立即安装”。</p>

    启动 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”按钮。
  • 点击“立即安装”。</li>
于 2014-03-06T05:52:30.630 回答
1

检查您的语言的文档

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

于 2014-05-14T10:46:29.993 回答
1

如果您使用的是 Java,您应该能够使用By.linkTextor By.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"));
于 2013-05-27T01:05:06.327 回答