当前位置: 首页 > 知识库问答 >
问题:

Selenium web驱动程序:无法滚动到视图中

束敏学
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://*****/>
<title>work it2</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">work it2</td></tr>
</thead><tbody>
<tr>
    <td>open</td>
    <td>/xxx</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//li[2]/div/div/div/span</td>
    <td></td>
</tr>
<tr>
    <td>pause</td>
    <td>3000</td>
    <td>3000</td>
</tr>
<tr>
    <td>doubleClick</td>
    <td>//div[2]/div[2]</td>
    <td></td>
</tr>
<tr>
    <td>pause</td>
    <td>3000</td>
    <td>3000</td>
</tr>
</tbody></table>
</body>
</html>
    selenium.open("xxx");
selenium.click("//li[2]/div/div/div/span");
Thread.sleep(3000);
selenium.doubleClick("//div[2]/div[2]");
Thread.sleep(3000);

我还将代码更改为

 driver.get("xxx");

        driver.findElement(By.xpath("//li[2]/div/div/div/span")).click();
        Thread.sleep(3000);
        WebElement ee = driver.findElement(By.xpath("//div[2]/div[2]"));
        Actions action = new Actions(driver);
        action.doubleClick(ee).perform();
        Thread.sleep(3000);

同样的错误...

//div[2]/div[2]

Com.ThoughtWorks.Selenium.SeleniumException:元素内的偏移量无法滚动到视图中:(87,118):[object XrayWrapper[object HTMLDivElement]]命令持续时间或超时:63毫秒构建信息:版本:“2.39.0”,修订版:“FF23eAC”,时间:“2013-12-16 16:11:15”系统信息:主机:“End”,IP:“192.168.17.76”,OS.Name:“Windows 7”,OS.ARCH:“AMD64”,OS.Version:“6.1”,Java.Version:“1.7.0_51”会话ID:

共有1个答案

吉鸿宝
2023-03-14

纳伊夫,

事实上,你的问题与实际问题不同,所以你应该把它作为一个单独的问题来提出。不过,我还是回答你前面的问题。

该错误是因为您试图单击的元素不可见。在单击element之前,它应该是可见的。你可以通过以下操作来做到这一点-

WebElement element = driver.findElement(By.xpath("//div[2]/div[2]"));
WebDriverWait wait = new WebDriverWait(driver, 20); //here, wait time is 20 seconds

wait.until(ExpectedConditions.visibilityOf(element)); //this will wait for elememt to be visible for 20 seconds
element.click(); //now it clicks on element
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);
 类似资料:
  • 错误是“元素输入class=”whsond zhqkbf“name=”password“type=”password“无法滚动到视图中”

  • 我正在尝试用Selenium选择一个值。 你能帮我纠正一下情况吗?

  • 我正在尝试使用java和Eclipse学习Selenium。我试图找到网页中的一个元素。 我尝试使用这行代码单击一个html元素: 下图显示了页面的html结构:

  • 有人能帮我一下吗:检查元素代码是。 代码为:

  • 我目前正在尝试使用selenium和C#单击网页上的一个元素。我需要单击一个基于具有文本'Test App'的子元素的Div元素。 如果以前有人问过类似的问题,我很抱歉,我花了一段时间浏览类似的主题,但没有找到我需要的。如果有人能给我指明正确的方向,我将不胜感激。

  • 问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram