Firefox有一个名为Selenium IDE的扩展程序。如何在Selenium IDE中单击包含文本的元素?举个例子,让我想象一下我想在Gumtree上发布一个广告(实际上我并不是,它只是我能想到的最简单的公开可见的例子)。
<script type='text/javascript' src='docs/jquery-min.js'></script>
<script type='text/javascript' src='docs/jquery-ui.js'></script>
<script type='text/javascript' src='docs/jquery.timepicker.js'></script>
<link rel='stylesheet' type='text/css' href='docs/jquery-ui.css' />
<link rel='stylesheet' type='text/css' href='docs/jquery.timepicker.css' />
<script>
$(function() {
//setup date pickers
$( "#dateFrom" ).datepicker({
changeMonth: true,
dateFormat: 'dd-mm-yy'
});
$( "#dateTo" ).datepicker({
changeMonth: true,
dateFormat: 'dd-mm-yy'
});
$('#timeFrom').timepicker({ 'scrollDefaultNow': true });
$('#timeTo').timepicker({ 'scrollDefaultNow': true });
});
</script>
</head>
<body >
<label for="text">START TIME : </label> <input type="text" id="dateFrom" /> <input type="text" id="timeFrom">
<label for="text">END TIME : </label> <input type="text" id="dateTo" > <input type="text" id="timeTo">
非常感谢
答案 0 :(得分:0)
您需要为这些元素找到元素定位器。好的是,Selenium IDE可以为您完成(在录制模式下)。
尝试以下定位器..
For sale
//form[@id='frmSyi']/div/div/div/div/nav/ul/li[2]/div/span
or
//li[2]/div/span[2]
===========
House Clearance
//form[@id='frmSyi']/div/div/div/div/div/div/div/div/ul/li[11]
or
//li[11]
注意:使用 ClickAt 命令而不是单击以查看房屋清理。
答案 1 :(得分:0)
通过文本搜索元素通常是一个坏主意,因为这样的测试不适合每个本地化,并且在任何文本更改的情况下都会非常脆弱。这就是为什么Selenium IDE没有开箱即用的原因。所以你应该使用xpath来做到这一点。但您可以在xpath中使用文本:
click | //*[contains(text(),'For Sale')]
click | //*[text()='House Clearance']
第一个命令将点击包含“待售”文字的第一个元素。
第二个命令会点击第一个元素,文字完全相同'House Clearance'
小心 - 很可能页面上有多个带有此类文本的元素(这是使用文本不好的另一个原因)。在这种情况下,您的xpath应该更详细。例如,如果您的元素是跨度:
<span>For Sale</span>
您可以使用xpath = // span [text()='For Sale']
您可以阅读有关xpath here
的更多信息答案 2 :(得分:0)
如果你是决定因素,你可以尝试:
driver.findElement(By.linkText("ElementText")).click();
或
driver.findElement(By.partialLinkText("ElementText")).click();