我是自动化(selenium)的新手。场景:在任何移动网站上识别移动标题的元素(例如:flipkart)。我想知道除了href / title之外是否还有其他方法可以识别使用selenium webdriver的元素?我想让它变得通用,因为手机可能在一段时间后无法使用。
将此网址用于该方案。
我使用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和链接文字。所有手机的课程都是相同的。
答案 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.linkText
或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"));
答案 2 :(得分:1)
火虫
Firebug是一个Firefox附加组件,我们将用它来检查被测Web应用程序的HTML元素。
使用Firefox导航到Firebug的下载页面https://getfirebug.com/downloads/
点击下载链接。
点击“立即安装”。
启动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脚本的创建。
https ://addons .mozilla .org/en-US /firefox/ addon/ element- locator- for-webdriv/
remove the spaces between the link
的的答案 3 :(得分:1)
检查您的语言的文档
您可以根据xpath,css_selector,class_name,id,name,tag_name,link_text或partial_link_text找到元素或元素列表