Sow*_*arz 11 c# selenium google-chrome saucelabs selenium-webdriver
我有以下问题.我在Firefox和Chrome上运行测试.在Firefox测试运行正确但Chrome SauceLabs上给出了一条消息:
unknown error: Element is not clickable at point (717, 657). Other
element would receive the click: <div class="col-md-9 col-sm-12"
style="margin-top:8px;">...</div> (Session info: chrome=36.0.1985.125)
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.3 x86_64)
Run Code Online (Sandbox Code Playgroud)
我以同样的方式在两个测试中通过唯一的css选择器选择元素:
driver.FindElement(By.CssSelector("button.btn-xs:nth-child(1)")).Click();
Run Code Online (Sandbox Code Playgroud)
任何想法在这里有什么不对?
bit*_*bit 15
我假设你有你需要的正确元素,即XPath是正确的.以下是几种方法:
parent element
而不是.Submit()
代替.Click()
JavaScript
将在OnClick
您尝试单击的元素的事件上执行的操作.我一直使用第三种方式取得成功.
另一个
.SendKeys(Keys.Enter)
该元素(或空格键)上由于您已将问题标记为Google-Chrome,我认为这种情况主要发生在ChromeDriver上.我之前的一个项目(Asp .Net MVC)遇到了同样的问题.我发现如果这些驱动程序不在screen_visible_area中,则该驱动程序看不到某些元素.请注意,它们已正确加载(HTML,CSS3,JS等).
因此,大量的阅读和测试后,我发现我的解决办法是简单地滚动到WebElement -因此它在屏幕的可见部分.实际上这个问题不适用于所有元素,我没有找到更好的解决方案.
unknown error: Element is not clickable at point (..., ...)
Run Code Online (Sandbox Code Playgroud)
对于这种情况不是描述性错误,因为和你一样,我也认为这与Selector有关.
只是为了得到完整答案 - 我也遇到了与IEDriver相同的问题.我的实现是使用浏览器向下滚动/向上选项,只是"发送屏幕"有问题的元素.
您可以使用的简单JSExecutor代码:
WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(110,350)", "");
Run Code Online (Sandbox Code Playgroud)
要么
jse.executeScript("scroll(0, 250);");
Run Code Online (Sandbox Code Playgroud)
要么
driver.executeScript("window.scrollBy(110,350)", "");
Run Code Online (Sandbox Code Playgroud)
其他与主题相关的有用资源在这里.
更新
说到.sendKeys()
我还使用了浏览器辅助功能.您需要做的就是计算您的测试需要多少TAB点击才能到达目标web_element.然后打电话.click()
.
试试这个简单的代码:
element.sendKeys(Keys.TAB);
Run Code Online (Sandbox Code Playgroud)
要么
element.sendKeys("\t")
Run Code Online (Sandbox Code Playgroud)
要么
Actions builder = new Actions(driver);
builder.keyDown(Keys.TAB).perform()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13624 次 |
最近记录: |