我正在尝试找到一组复选框,但我需要在字段集中找到它们.html就像这样(它是一个gwt应用程序,因此产生了大量的东西:
<div id="UpdateUserView-RolesColumn">
<fieldset style="">
<legend>Primary Role</legend>
<select class="gwt-ListBox">
<option value="ROLE_GENERAL_USER">ROLE_GENERAL_USER</option>
<option value="ROLE_ADMIN">ROLE_ADMIN</option>
</select>
</fieldset>
<fieldset style="" class="createUser-otherRolesFieldset">
<legend>Other Roles / Permissions</legend>
<div style="overflow: auto; position: relative; zoom: 1; height: 250px;">
<div style="position: relative; zoom: 1;">
<div>
<span class="gwt-CheckBox">
<input type="checkbox" value="on" id="gwt-uid-760" tabindex="0" checked="">
<label for="gwt-uid-760">ROLE_BLAH1_USER</label>
</span>
<span class="gwt-CheckBox">
<input type="checkbox" value="on" id="gwt-uid-761" tabindex="0" checked="">
<label for="gwt-uid-761">ROLE_BLAH2_USER</label>
</span>
<span class="gwt-CheckBox">
<input type="checkbox" value="on" id="gwt-uid-762" tabindex="0" checked="">
<label for="gwt-uid-762">ROLE_BLAH3_USER</label>
</span>
<span class="gwt-CheckBox">
<input type="checkbox" value="on" id="gwt-uid-763" tabindex="0" checked="">
<label for="gwt-uid-763">ROLE_BLAH4_USER</label> …
Run Code Online (Sandbox Code Playgroud) 用户操作后,Web应用程序始终使用此div.我的测试脚本有这一行.逐字逐句.
@browser.div(:id => 'loading-indicator').wait_while_present
Run Code Online (Sandbox Code Playgroud)
在任何地方明确地包括这条线是可以的,但是丑陋和重复.
使用wait_until_present
与下一元素(" foo
负载指示后"),有时会工作.然而,在某些情况下foo
和负载指示同时存在,但foo
不是visible?
直到负载指示消失.
有没有办法,或许在env.rb
,向watir-webdriver表明它应该始终wait_while
存在这个元素?
我们有一个带有Page Object和Page Factory设计模式的UI框架.在我的一个Page Object类中,我定义了一个webelement并调用它.在我的测试步骤类中,当这是在一个页面上时,我正在调用此webelement,而当我在另一个页面上时,我再次调用此元素.下面是我的代码的样子
PageObjectClass1:
@FindBy(how=How.XPATH, using="//*[contains(text(),'Successfully')]")
@CacheLookup
public WebElement successMsg;
Run Code Online (Sandbox Code Playgroud)
testStepClass:
//on first page
PageObjectClass1.successMsg.isDisplayed()
//Then I navigate to some other page and again call this webelement
PageObjectClass1.successMsg.isDisplayed();
Run Code Online (Sandbox Code Playgroud)
在第二次调用它时,webdriver正在给我staleElementException.此xpath是通用xpath,将在每个页面中使用.这肯定存在于DOM中,所以不确定为什么它会给我这个例外?如何在不在每个页面对象类中创建此元素的情况下使用它?
给出的例外情况是:
org.openqa.selenium.StaleElementReferenceException:陈旧元素引用:元素未附加到页面文档
java selenium pageobjects selenium-webdriver staleelementreferenceexception
我是 cypress 的新手,正在尝试在 POM 上创建框架。
我已按照以下步骤创建框架
{
"RxClaims_LoginPage":
{
"UserName":"#f0",
"Password":"#f1",
"SignInButton":"#xlg0003"
}
}
Run Code Online (Sandbox Code Playgroud)
/// <reference types="Cypress" />
import ORLoginPage from '../PageObjects/OR_Login'
describe('OR_Approach',function(){
it('RxClaimsLogin', function() {
const login = new ORLoginPage();
cy.visit('/')
cy.wait(2000)
login.EnterData_In_UserName()
login.Password()
login.SignInButton()
})
})
Run Code Online (Sandbox Code Playgroud)
3.我在 Integration>POM 下创建了另一个文件夹,其中包含所有 POM - 其中一个名为OR_Login.js看起来像
class ORLoginPage{
EnterData_In_UserName()
{
cy.fixture('example').then(function (dataJson) {
this.testData = dataJson;
})
cy.fixture('locators').then(function (oRdata) {
this.objRep = oRdata;
})
cy.enterDatainTextBox(this.objRep.RxClaims_LoginPage.UserName,this.testData.UserName)
return this
}
Password(){
return 'cy.enterDatainTextBox(this.objRep.RxClaims_LoginPage.Password,this.testData.Password)'
}
SignInButton(){ …
Run Code Online (Sandbox Code Playgroud) pageobjects ×4
watir ×2
cucumber ×1
cypress ×1
fieldset ×1
java ×1
javascript ×1
ruby ×1
selenium ×1