【问题标题】:Selenium WebDriver - Java - Click a buttonSelenium WebDriver - Java - 单击一个按钮
【发布时间】:2013-09-29 22:26:53
【问题描述】:

我正在尝试单击一些按钮,并以 twitch 上的“关注”按钮为例。

我使用 Selenium IDE 尝试获取按钮的 xpath。我得到的 xpath 是://span[@id='ember637']/a/span

如果我转到 FireFox 并为我得到的按钮复制唯一选择器:.js-follow > span:nth-child(1)

我在 java 程序中都试过了,但它们都不起作用。当我使用//span[.. xpath 时,出现以下错误:

"Unable to locate a node using //span[@id='ember637']/a/span"

编辑:

带有我想点击的按钮的网站示例(关注按钮): http://www.twitch.tv/mradder89/profile/

我使用的 Selenium jar 文件是“selenium-server-standalone-2.35.0.jar”

我得到的错误是

"Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate a node using //span[@id='ember637']/a/span"

编辑 2:

我下载了 PhantomJSDriver exe 文件(phantomjs.exe)并正在尝试。它不起作用... 我没有像以前那样收到错误消息(“无法找到节点...”错误)。

这是代码:http://pastebin.com/GzvubMZr

【问题讨论】:

  • 用更多信息编辑了我的帖子。我正在使用“WebDriver driver = new HtmlUnitDriver();”所以没有打开浏览器。
  • 想补充一点,当我使用目标为“//span[@id='ember637']/a/span”的 Selenium IDE 时,它确实单击了“关注/取消关注”按钮。这就是为什么我很惊讶它在 java 程序中不起作用。
  • 尝试其他浏览器,如果可行,则时间问题或HtmlUnitDriver 问题。所以我们可以回去解决它。
  • @user1177636 试试其他浏览器是什么意思? Selenium IDE 是一个 Firefox 插件
  • FirefoxDriver、ChromeDriver、InternetExploerDriver等

标签: java selenium selenium-webdriver webdriver


【解决方案1】:

使用 PhantomJSDriver,尝试不同的定位器。如果有任何异常,请发布异常,否则发布元素的信息,例如位置、文字等

driver.findElement(By.xpath("//*[contains(@class, 'profile-actions')]//span[text()='Follow']")).click();
driver.findElement(By.cssSelector(".profile-actions .primary_button > span")).click();

【讨论】:

    猜你喜欢
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多