如何点击带有selenium webdriver的div按钮?

时间:2016-12-19 20:21:17

标签: html selenium selenium-webdriver selenium-ide

我有这个按钮: -

 <div class="dsk-col-1-4 card new">
    <div class="div_center_div">
      <span class="icon icon_plus-black-symbol"></span>
      <h2>Create</h2>
    </div>
  </div>

但我尝试使用classname查找元素: -

driver.findElementByClassName("dsk-col-1-4 card new").click();

但它不起作用。 有什么帮助吗?

4 个答案:

答案 0 :(得分:2)

&#34;按类名&#34; locator通常需要传递单个类名

driver.findElementByClassName("card").click();

如果您想使用多个班级,请使用&#34; CSS选择器&#34;

driver.findElementByCssSelector(".card.new").click();

请注意,dsk-col-1-4类对于元素定位器来说不是一个很好的选择 - 这看起来非常像一个面向布局的类名,它不仅具有更高的b更改概率,而且还没有带来有关元素及其目的的任何信息。另一方面,cardnew更适合。

答案 1 :(得分:2)

移动到元素并单击。示例:

new Actions(driver).MoveToElement(yourElement).Click().Perform();

答案 2 :(得分:0)

好的,所以我无法准确理解你要点击哪个元素, 所以基于我的假设,尝试下面的Xpaths:

1)如果您要点击<div class="dsk-col-1-4 card new">

//div[contains(@class,'dsk-col-1-4 card new')]

2)如果您想点击,

//span[contains(@class,'icon icon_plus-black-symbol')]

3)如果您要点击<h2>Create</h2>

//h2[text()='Create']

希望这有助于!!

答案 3 :(得分:0)

在您的定位器中,您传递了多个类名,虽然它们都被分配给元素,但findElementByClassName函数仅在它是单个类名时才起作用。我这样做的方法是使用findelement(By.Xpath()),在这种情况下你需要使用

webDriver.findElement(By.xpath("//div[contains(@class,'dsk-col-1-4 card new')]")).click();