单击按钮

时间:2016-08-20 16:44:27

标签: java selenium selenium-webdriver

我尝试点击按钮但是它会抛出错误。

Selenium代码是

WebElement sa = driver.findElement(By.xpath("html/body/div[2]/div/div[7]/div/div/div[2]/div[2]/a[1]/div/div/div[2]"));
         ((JavascriptExecutor)driver).executeScript("arguments[0].click()", sa);

我得到的错误是:

  

元素在点(215,105)处不可点击。其他元素会收到点击:<svg style="overflow: hidden; position: relative;" xmlns="http://www.w3.org/2000/svg" width="1287" version="1.1" height="100"></svg>

请帮忙。

2 个答案:

答案 0 :(得分:0)

尝试显式等待页面加载。或者页面已加载但元素由于某种原因不可见。您可以将页面滚动到元素所在的位置。

(作为IJavaScriptExecutor的驱动程序).ExecuteScript(string.Format(“window.scrollTo(0,{0});”, elementToClick.Location.Y));

//单击元素 elementToClick.Click();

您可以在此处找到示例: Chrome - Element is not clickable at point #2766

答案 1 :(得分:0)

当您使用.click() WebElement方法而非使用javascript click时,实际提供的异常将被抛出,那么您确定此异常在此行​​中引入你将使用JavascriptExexutor ??

点击

无论如何,您可以尝试使用By.cssSelector()点击此div,如下所示: -

driver.findElement(By.cssSelector("div.question_text")).click();

已修改: - 如果您仍然遇到同样的异常,则需要先使用JavascriptExexutor滚动到达该元素,然后点击以下内容: -

WebElement el = driver.findElement(By.cssSelector("div.question_text"));

//Now scroll to reach that element 
((JavascriptExexutor)driver).exexuteScript("arguments[0].scrollIntoView()", el);

//now click on this link 
el.click();