【问题标题】:Selenium unable to click on the webelement element ( file upload button)Selenium 无法点击 webelement 元素(文件上传按钮)
【发布时间】:2013-11-17 23:15:59
【问题描述】:
      WebDriver driver = new FirefoxDriver();
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      driver.get("http://stackoverflow.com/");
      driver.findElement(By.linkText("log in")).click();
      driver.findElement(By.cssSelector("a.google.openid_large_btn")).click();
      driver.findElement(By.id("Email")).sendKeys("username@gmail.com");
      driver.findElement(By.id("Passwd")).sendKeys("password");
      driver.findElement(By.id("hlinks-user")).click();
      driver.findElement(By.linkText("user2131252")).click();
      Thread.sleep(3000L);

      // None of these work to click on the upload button , actions, robot..
  //driver.findElement(By.xpath(".//*[@id='change-picture']")).click();
      //Actions actions = new Actions(driver);
      //WebElement changepic = driver.findElement(By.xpath(".//*[@id='change-picture']"));
      //actions.moveToElement(changepic).click().perform();
      //actions.click();
      //actions.perform();

      /*Point coordinates = driver.findElement(By.xpath(".//*[@id='change-picture']")).getLocation();
      Robot robot = new Robot();
      robot.mouseMove(coordinates.getX(),coordinates.getY()+120);
      //robot.mousePress(coordinates.getX());
      driver.findElement(By.xpath(".//*[@id='change-picture']")).clear();
      */

      Actions actions = new Actions(driver);
    //for hovering over the username field
    WebElement menuHoverLink = driver.findElement(By.xpath(".//*[@id='change- picture']"));
    actions.moveToElement(menuHoverLink).perform();
    //for clicking the logout link
    WebElement logoutLink = driver.findElement(By.xpath(".//*[@id='change-picture']"));
    logoutLink.click();

请我无法点击更改图片链接,我在不同的浏览器上收到不同的错误。

log4j:WARN 找不到记录器 (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager) 的附加程序。 log4j:WARN 请正确初始化 log4j 系统。 线程“主”org.openqa.selenium.interactions.MoveTargetOutOfBoundsException 中的异常:元素无法滚动到视图中:(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:13 毫秒 构建信息:版本:'2.33.0',修订:'4e90c97',时间:'2013-05-22 15:33:32' 系统信息:os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.7.0_17' 会话 ID:4534c06c-0622-4610-8d7d-1cf99f9577ee 驱动信息:org.openqa.selenium.firefox.FirefoxDriver 功能 [{platform=XP,databaseEnabled=true,cssSelectorsEnabled=true,javascriptEnabled=true,acceptSslCerts=true,handlesAlerts=true,browserName=firefox,browserConnectionEnabled=true,nativeEvents=true,webStorageEnabled=true,rotatable=false,locationContextEnabled=true ,applicationCacheEnabled=true,takeScreenshot=true,版本=24.0}] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源) 在 java.lang.reflect.Constructor.newInstance(未知来源) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:191) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554) 在 org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:34) 在 org.openqa.selenium.remote.RemoteMouse.mouseMove(RemoteMouse.java:88) 在 org.openqa.selenium.interactions.MoveMouseAction.perform(MoveMouseAction.java:36) 在 org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.java:31) 在 org.openqa.selenium.interactions.Actions.perform(Actions.java:356) 在 test.stackoverflow.main(stackoverflow.java:52)

【问题讨论】:

  • 我无法单击“更改图片”按钮,该按钮会打开文件上传。我要做的就是在我的个人资料上上传一张图片。

标签: selenium-webdriver


【解决方案1】:

你可以尝试在 sleep() 之后使用javascriptExcecuter

 ((JavascriptExecutor)driver).executeScript("$('#change-picture').click();");

【讨论】:

  • 以上行适用于 chrome,但在 Firefox 上我收到一条错误消息。有什么想法吗?
  • 原因:org.openqa.selenium.remote.ErrorHandler$UnknownServerException: waiting for evaluate.js load failed
  • 更新到最新的 Webdriver 解决了 firefox 问题。谢谢
猜你喜欢
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多