Selenium webdriver - 脚本不适用于chrome,但它可以与firefox一起使用

时间:2015-05-20 07:42:57

标签: selenium-webdriver selenium-chromedriver

此代码正在使用Firefox但不使用chrome。没有任何改变,它在firefox中运行良好。我使用了隐式和显式,没有使用chrome。我想用环境检查什么

WebDriverWait wait1 = new WebDriverWait(browser, 15);
wait1.until(ExpectedConditions.elementToBeClickable((By.cssSelector("input[name='ctl00$cphMainContent$imgAdd']"))));

//  browser.findElement(By.id("cphMainContent_imgAdd")).click();
browser.findElement(By.cssSelector("input[name='ctl00$cphMainContent$imgAdd']")).click();
WebDriverWait wait = new WebDriverWait(browser, 15);
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("span[id='tab3']")));

错误消息 -

  

未知错误:元素在点(332,548)处无法点击。其他元素将收到点击:

     ...      

(会话信息:chrome = 42.0.2311.152)     (驱动程序信息:chromedriver = 2.15.322448(52179c1b310fec1797c81ea9a20326839860b7d3),platform = Windows NT 6.1 SP1 x86)(警告:服务器未提供任何堆栈跟踪信息)   命令持续时间或超时:39毫秒

1 个答案:

答案 0 :(得分:1)

可能是其中一个原因 -

  1. 对象未完全加载并执行单击
  2. Chrome窗口未最大化,并且chromedriver无法正确找到该元素。
  3. 可能的解决方案 -

    1. 使用Thread.sleep(40000);增加睡眠定时器 - 尝试将此调试解决问题的根本原因
    2. 最大化Chrome窗口 - driver.manage().window().maximize();
    3. 尝试使用javascriptexecutor滚动到该对象,然后单击