2016-08-20 67 views
0

我尝试点击按钮,但它抛出一个错误。错误,同时点击按钮

硒代码是

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>

请帮忙。

回答

0

尝试显式等待页面加载。或者该页面已加载,但由于某些原因该元素不可见。您可以将页面滚动到元素所在的位置。 (driver,as IJavaScriptExecutor).ExecuteScript(string.Format(“window.scrollTo(0,{0});”, elementToClick.Location.Y));

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

的例子,你可以在这里找到:当您使用.click()WebElement方法,而不是使用javascriptclickChrome - Element is not clickable at point #2766

0

实际上提供的异常会被抛出,那么你肯定这个例外是当你在这行抛去点击使用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(); 
+0

还是同样的错误元素是不能点击点(460,11.39999) – huges

+0

OK了,你需要先滚动到达到那个的Elemen t点击之前。尝试与编辑的答案,让我知道.. :) –

+0

你需要确定哪个元素是可点击的,并通过该元素来执行点击... :) –