一旦selenium web驱动程序单击任何按钮,它就不会再点击任何其他按钮

时间:2015-09-22 11:14:12

标签: selenium-webdriver

页面刷新时我的网页驱动程序出现问题 场景: 点击第一个按钮,页面刷新。一旦页面刷新,那么驱动程序就无法找到第二个按钮的位置。第二个按钮是保存功能,因此我无法保存该页面。

我在跑步时遇到的错误:

unknown error: Element is not clickable at point (257, 898).

其他元素会收到点击:

<div id="divModel" class="dialog" style="display: block; height: 2037px; width: 1450px;">...</div>

1)有没有解决方案来刷新页面上的变量而不刷新整个页面?

2)有没有解决方法在点击该页面上的第一个按钮位置后找到它?

2 个答案:

答案 0 :(得分:0)

首先,我们不清楚您的情况。首先检查刷新页面后Xpath是否正在改变。另一件事可能是你的页面需要一些等待。

尝试以下代码: -

WebElement element= driver.findElement(By.xpath("YOUR XPATH OR ANY LOCATOR"));

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated((By) element));

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

最后如果没有任何效果,请尝试使用Thread.sleep(5000);。 这不是一个好习惯,即使不建议使用Thread.sleep,但您至少可以尝试一次以确保问题与仅等待相关

答案 1 :(得分:0)

它不是解决方案,它的解决方法是:如果您使用Chrome驱动程序,则使用FF / IE驱动程序。我不久前遇到类似Chrome驱动程序的问题,原来是Chrome驱动程序错误。

此外,如果您使用PO模型,则可以使用@CacheLookup注释:

@CacheLookup
@FindBy(id = "your_id")
private WebElement saveButton;
  

要应用于WebElements的标记注释以指示它   永远不会改变(也就是说,DOM中的相同实例将始终如此   使用)