如何在selenium中解决NoSuchElement异常?

时间:2015-10-09 01:11:40

标签: javascript java selenium nosuchelementexception

我最初有一个链接。现在我收到了显示按钮而不是A / B测试链接的要求。因为我不想为按钮编写新的测试,所以我必须使他们的ID相同。

要决定显示哪个,我在li项目中添加了两个唯一的类。这很好。

但是在测试时它开始失败,给出消息"订阅者链接不可用"虽然那里有按钮。

我认为它可能会因为两个相同的ID而失败,所以我添加了两个相同的类并将选择器从id更改为class。但它仍然失败。

<li class="not_subscriber subscriber-text-link " style="display:none">
  <a class="link-orange subscribe" href="" id="subscribe_link"> Subscribe </a>
</li>
<li class="not_subscriber subscriber-orange-btn " style="display:none">
  <a class="btn-orange subscribe" href=""  id="subscribe_link" > Subscribe </a>
</li>

@FindBy(css = ".subscribe")
@NoSuchElementDescription("Subscriber link is not available")
protected WebElement _subscribeLink;

有没有办法让我不必编写新的测试和更改ID并且测试会开始传递?

2 个答案:

答案 0 :(得分:0)

请你在Xpath下面试试: -

//li[@class='not_subscriber subscriber-orange-btn ']/a[@class='btn-orange subscribe']

希望它会对你有所帮助:)。

答案 1 :(得分:-1)

将选择器更改为xpath。几乎每个元素都有一个xpath。并确保将双引号替换为单引号。它应该比class或id选择器更可靠。