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

使用selenium和java与web元素的交互

全誉
2023-03-14

我需要与此元素进行交互,以使用硒,cucumber和java注销,但它不工作:

期望元素映射

控制台上显示的消息

下面是我代码的一部分,只有我用来尝试注销的方法,记住对于其他映射它是有效的:

class Generic
public void waitDesiredElement (By element) {
    wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(element));
}

class LoginPage
private By signOut = By.xpath("//label[@ng-click='signOut($event)']");
public By getSignOut () {
    return signOut;
}

class LoginLogic
public void logout () {
    waitDesiredElement(login.getSignOut());
    click(login.getSignOut());
}

class LoginStep
@When("^realizo logout$")
public void logoutThePage () {
    login.logout();
}

共有1个答案

益锦程
2023-03-14

为了在那里注销,你必须首先点击用户菜单,这样菜单就会打开,注销选项元素将可见并可点击
此外,我建议您使用元素可见性或可点击性预期条件,而不是仅使用元素存在,因为在页面上的元素创建过程中,它可能已经存在于页面上,但仍然不可点击/可见
试试这个:

class Generic
public void waitDesiredElementVisibility (By element) {
    wait.until(ExpectedConditions.visibilityOfElementLocated(element));
}

class LoginPage
private By signOut = By.xpath("//label[@ng-click='signOut($event)']");
private By userMenu = By.xpath("//a[@aria-label='UserMenu']");
public By getSignOut () {
    return signOut;
}
public By getUserMenu () {
    return userMenu;
}

class LoginLogic
public void logout () {
    waitDesiredElementVisibility(login.getUserMenu());
    click(login.getUserMenu());
    waitDesiredElementVisibility(login.getSignOut());
    click(login.getSignOut());
}
 类似资料:
  • 问题内容: 我敢肯定,这已经在某个地方得到了回答,因为这是一个非常基本的问题-但是,对于我的一生,我无法在网上找到答案。我觉得自己是个白痴,但是我不得不问,这是: 我正在编写一个python代码,该代码将生成域中所有页面地址的列表。这是使用selenium2完成的-当我尝试访问由selenium产生的所有链接的列表时,会发生我的问题。 这是我到目前为止的内容: 该变量不包含在页面上找到的链接- 而

  • 我需要在IE11上测试一个网站,所以我用IEDRiver做了一个selenium测试项目。我也使用Maven。在local中一切都很好,我现在不得不使用Jenkins来启动我的测试。 我创建了一个简单的工作来尝试我的一个测试。Jenkins找到我的pom.xml,用IEDriver打开浏览器,导航到我的url,然后问题就开始了。 我的测试在本地运行时所做的工作: 点击element2进入下一页;

  • 我正在使用Java和Selenium来自动化我的测试。我的一个测试需要从计算机上传图像。我使用Robot对象来识别上传窗口并设置文件的路径。通过IntelliJ运行测试时,一切正常,因为浏览器位于前面,包括上传窗口。当我通过Jenkins运行测试时,浏览器和上传窗口仍然位于后面,无法上传文件。 我尝试了几种方法将窗口放在最前面,它们只有在通过IntelliJ直接运行时才能工作,但詹金斯仍然存在问题

  • 我已经花了几个小时试图找到使用Selenium WebDriver查找元素的方法。我假设我需要使用driver.find元素(By.xpath ("")), 但我不太确定如何使用。 我需要找到并单击“clickon”元素。问题是该元素的一部分正在更改(请参见屏幕截图),我需要从文件中提取并放入xpath。 我将感谢任何帮助。

  • 我有这个网站:http://embed.plnkr.co/Bs5iDqtXSSnvye2ORI6k/preview 代码: 和以下规格: 这种配置: 当我运行Protractor时,会出现以下错误: StaleElementReferenceError:过时元素引用:元素未附加到页面文档(会话信息:chrome=43.0.2357.81) (驱动程序信息:chronidriver=2.15.322

  • 根据以下指示进行更新 更新了来自reply的每个指令的webelemnt,然后下面是它在我的方法中实现的地方