Элемент не кликабельный в (1215/912). Другой элемент получит щелчок. Этот код хорошо работает в FirefoxDriver, но не работает в ChromeDriver.

@Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe");
//driver = new FirefoxDriver();
driver = new ChromeDriver();
//driver = new InternetExplorerDriver();
baseUrl = "http://www.cargiant.co.uk/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

@Test
public void testUntitled() throws Exception {
driver.get(baseUrl + "/default.asp");
driver.manage().window().maximize();
driver.findElement(By.xpath("//div[5]/div[2]/p")).click(); //**this element can't be clicked**
driver.findElement(By.cssSelector("img[title=\"Value my car\"]")).click();

Я использую селен веб-драйвер. Я могу успешно запустить приведенный выше код в FirefoxDriver, но не могу успешно запустить его в ChromeDriver и IEDrver. Когда я использую chromedriver, он дает исключение. Элемент не доступен для клика в точке (1215, 912). Другой элемент получит щелчок

Любые предложения будут очень полезны. Спасибо


person user3596235    schedule 13.11.2014    source источник
comment
Наверное, потому что это дальше по странице. Попробуйте прокрутить.   -  person Arran    schedule 13.11.2014
comment
поставить немного подождать. Может быть проблема с загрузкой элемента   -  person Saifur    schedule 13.11.2014
comment
@Арран. Я думаю, что это может быть проблемой. Я заметил, что во время тестового прогона он не прокручивается полностью до того места, где находится элемент. все остальное перепробовал все равно не работает   -  person user3596235    schedule 18.11.2014


Ответы (2)


Приведенный ниже код работает в Chrome (И, если запустить его в FF с необходимыми изменениями кода, он все равно будет работать!!):

WebDriver driver;
String baseUrl;

@Before
public void setUp() throws Exception {
    System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
    //driver = new FirefoxDriver();
    driver = new ChromeDriver();
    //driver = new InternetExplorerDriver();
    baseUrl = "http://www.cargiant.co.uk";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void testUntitled() throws Exception {
    driver.manage().window().maximize();
    driver.get(baseUrl + "/default.asp");

    Actions act = new Actions(driver);
    act.moveToElement(driver.findElement(By.xpath("//div[5]/div[2]/p"))).click().build().perform();

    WebDriverWait wait = new WebDriverWait(driver,20);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("img[title=\"Value my car\"]")));
    driver.findElement(By.cssSelector("img[title=\"Value my car\"]")).click();
}
person Subh    schedule 13.11.2014

Я бы порекомендовал сделать простое изменение в файле xpath. Попробуйте использовать

    driver.findElement(By.xpath("//div[5]/div[1]/p")).click();

вместо

    driver.findElement(By.xpath("//div[5]/div[2]/p")).click();
person Rajesh Ojha    schedule 14.11.2014
comment
Это отлично работает, но я застреваю в driver.switchTo().frame(myFrame); при использовании хромдрайвера - person user3596235; 18.11.2014