【问题标题】:Not able to click on element using Selenium .click()无法使用 Selenium .click() 点击元素
【发布时间】:2014-04-29 18:53:49
【问题描述】:

下面是 HTML 标签:

<div onscroll="return isc_Canvas_4.$lh()" style="position: absolute; left: 6px; top: 6px; width: 12px; height: 12px; z-index: 201854; overflow: hidden; -moz-box-sizing: border-box; cursor: pointer; margin: 0px; padding: 0px; border: 0px none; display: inline-block;" class="fa fa-caret-down" eventproxy="isc_Canvas_4" id="isc_55">&nbsp;</div>

我想使用 Selenium 点击这个元素。我尝试过使用 selenium element.click() 但它不起作用。

任何人都可以建议任何其他方式吗?可以通过 Selenium 中的 JS 或 JQuery。

【问题讨论】:

  • 你能解释一下你是如何定义你想点击的element的吗?另外,我认为您应该提供比上述更多的 HTML 代码 sn-p。如果您提供,我们将能够帮助您使用 xpath 定位元素。
  • XPATH ,这里没有任何操作。我能够找到该元素并检索其属性,但无法单击它@TDHM。我认为 JS 或 JQuery 可以在这里提供帮助
  • div 通常不可点击。这很可能是问题所在。当您单击 div 时会发生什么?

标签: javascript jquery selenium selenium-webdriver


【解决方案1】:

尝试以下在元素上执行 javascript 的位置:

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);

【讨论】:

  • 根据我的知识,在获得该元素的网页之前,我无法为您提供帮助,而且我也不明白使用div 标签单击该元素后会发生什么。显然,该元素既不代表按钮也不代表链接。
  • 如何在 Selenium 中使用 JQuery 点击元素?
  • 对不起,我不知道 JQuery。
【解决方案2】:

我会尝试这样的。

如果每次加载时DIV的ID都相同:

driver.findElement(By.id("isc_55")).click();

否则,如果 DIV 的文本是唯一存在的:

driver.findElement(By.xpath("//div[contains(text(), '&nbsp;')]")).click();

甚至可能:

driver.findElement(By.xpath("//div[text()='&nbsp;']")).click();

添加更多的 html 和一些代码会有很大帮助吗?

【讨论】:

    猜你喜欢
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多