如何在Selenium IDE中单击文本?

时间:2016-03-25 10:55:20

标签: selenium firefox testing automated-tests selenium-ide

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"> 

非常感谢

3 个答案:

答案 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();