如果 id 和 xpath 不起作用,我如何在此代码中添加点击功能

Posted

技术标签:

【中文标题】如果 id 和 xpath 不起作用,我如何在此代码中添加点击功能【英文标题】:How I can add click function in this code if id and xpath are not working 【发布时间】:2017-03-16 17:47:05 【问题描述】:

这是应用程序代码

<div class="btn-group" style="margin-top: -10px; box-shadow: none !important;">
            <a class="btn btn-clear store-name headerActive" style="margin-left: 0px !important;" ng-click="account();" _href="#/app/account-addresses">
              <div class="left-logo ng-binding">SK</div><h5 class="logo-name ng-binding">sathish kumar krish</h5>
            </a>
      </div>

它是我的 webdriver 脚本。

driver.findElement(By.xpath("/html/body/div[2]/div[1]/div/div/div[1]/div/a")).click();

【问题讨论】:

我用过,xpath,className,css 选择器。没有任何作用。我怎么能点击链接? 不工作?意思是,元素没有被识别?或者元素不可见?或者该元素不可点击?抛出了什么异常? 它在 IFRAME 中吗? 【参考方案1】:

试试这个 -

WebDriverWait wait = new WebDriverWait(Driver, 10); // Wait for 10 seconds.
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("/html/body/div[2]/div[1]/div/div/div[1]/div/a")));
WebElement element = driver.findElement(By.xpath("/html/body/div[2]/div[1]/div/div/div[1]/div/a"));
element.click();

【讨论】:

【参考方案2】:

我也遇到过类似的问题,但我不确定是什么原因造成的。在这种情况下,您可能会使用 javascript 点击事件。如下所示,

WebElement element = driver.findElement(By.id("<<<Your ID>>>"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

希望对您有所帮助!

【讨论】:

以上是关于如果 id 和 xpath 不起作用,我如何在此代码中添加点击功能的主要内容,如果未能解决你的问题,请参考以下文章

找到java selenium元素,但单击一次不起作用

可读性 IXML xpath 不起作用

使用 xpath 抓取网页内容不起作用

使用模板时,xpath不起作用

具有多个条件的 SQL 查询不起作用

Selenium 中的 Instagram XPath 不起作用? (Python)