我的屏幕上有很多单选按钮.选择单选按钮时,它具有已检查的属性.未选择单选按钮时,不存在checked属性.我想创建一个方法,如果元素不存在将通过.
我正在使用selenium webdriver和java.我知道我可以通过使用来检索属性getSingleElement(XXX).getAttribute(XXX).我只是不确定如何验证属性不存在,以及测试在不存在时传递(如果确实存在则失败).
选中单选按钮时
<input id="ctl00_cphMainContent_ctl00_iq1_response_0" type="radio" name="ctl00$cphMainContent$ctl00$iq1$response" value="1" checked="checked">
Run Code Online (Sandbox Code Playgroud)
未选中单选按钮时
<input id="ctl00_cphMainContent_ctl00_iq1_response_0" type="radio" name="ctl00$cphMainContent$ctl00$iq1$response" value="1">
Run Code Online (Sandbox Code Playgroud)
我希望在checked属性不存在时传递测试
我试图在 cypress 中使用 ignoreTestFiles 以便不完整的测试不会在测试套件中运行。
我的测试路径是
C:\Users\userA\IdeaProjects\automated_tests\cypress\integration\ignoredTestFiles
Run Code Online (Sandbox Code Playgroud)
在 cypress.json 中,我有以下条目
"ignoreTestFiles": "*ignoredTestFiles*"
Run Code Online (Sandbox Code Playgroud)
我使用 Globster 来验证 minimatch,它说它是正确的。但是当我运行测试时,这些文件并没有被忽略。
对于我们的一个应用程序,我需要设置本地存储以绕过登录页面过程。
我有以下函数将返回我需要设置的 accessToken。此功能在节点中运行时有效。
async function getAccessToken(email, pwd) {
const form = {email: email, password: pwd};
let config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}
};
const accessToken = await axios.post(`${process.env.API_URL}/loginWithToken`, qs.stringify(form), config);
console.log(accessToken.data.accessToken);
return accessToken.data.accessToken
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个 cypress 命令来设置本地存储,然后访问该应用程序。运行时,我收到一个错误,我从命令返回了一个承诺,同时还调用了该承诺中的一个或多个 cy 命令。
Cypress.Commands.add("logInAs", async(Useremail, Userpwd, TMURL) => {
var accessToken = cy.task('getAccessToken', {email: Useremail, pwd: Userpwd
}).then(Visit =>{
window.localStorage.setItem("accessToken", accessToken);
window.localStorage.setItem("refreshToken", accessToken);
cy.visit(`${process.env.TM_API_URL}/`+TMURL+``);
});
});
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下 cypress 命令
require('dotenv').config();
Cypress.Commands.add('logInAs3', (Useremail, Userpwd, TMURL) => {
cy.request({
method: 'POST',
url: `${process.env.API_URL}/loginWithToken`, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用chrome运行测试,但是当浏览器启动测试失败时,我看到以下错误.
org.openqa.selenium.WebDriverException:未知错误:无法在chrome中发现打开的窗口
我使用的是最新版本的selenium和chrome驱动程序
仅在本地计算机上运行测试时才会出现此错误.如果我在网格VM上运行这些测试,Chrome将打开而没有任何问题,测试将运行.网格VM和我的本地计算机具有完全相同的chrome,chrome驱动程序和webdriver版本.
我可以在本地计算机上查找什么来解决此问题?我试图重新安装chrome,但这没有帮助.

是否有适用于 cypress 和 Azure AD 单点登录的解决方案?Azure AD 似乎没有可以使用登录名/密码调用来登录用户的 API。为此输入了一个未决问题。
Microsoft Azure Cypress Github 问题
我尝试过使用这个puppeteer解决方案,但我遇到了与其他人相同的问题。一旦我使用 Cypress 导航到我的页面,我就会被重定向回登录页面。
我为应用程序中的元素创建了一个对象。此元素是显示在屏幕上的记录的文本。所以在第一页上,它会说“显示 1-10 of 2100”
public static final String VTeam_M_Detail_VRecordsText = "css=#UserList:last-of-type > div:last-child";
Run Code Online (Sandbox Code Playgroud)
当我更改页面时,该元素的文本会更改。所以如果我转到第二页,它会说“显示 11-20 of 2100”。在继续测试之前,如何让 webdriver 等待该元素的文本更改。因此,当我从第 1 页转到第 2 页时,我想等待该元素的文本等于“displaying 11-20 of 2100”,然后再继续测试的其余部分。
使用 Java 和 webdriver,我尝试设置一个测试来验证我输入的密码是否被屏蔽。使用我的工具,我们有一个设置,允许您屏蔽密码或显示文本。我想知道是否有人用 Selenium 验证过类似的事情。
这是我要检查的内容 设置关闭 - 在输入字段中键入内容并验证是否显示文本 设置开启 - 在输入字段中键入并验证我的输入是否被屏蔽
我相信浏览器可以处理屏蔽,所以我不确定是否可以进行此测试。输入字段的元素没有任何有关屏蔽的属性。
感谢您的帮助
我有一个包含许多值的下拉列表.我想写一个方法,我可以输入所有下拉值的预期文本,并将其与所有下拉值的实际文本进行比较.如果它们匹配,则测试通过.我目前正在使用webdriver和Java.
<select id="ctl00_cphMainContent_dq14_response" name="ctl00$cphMainContent$dq14$response">
<option value="0" selected="selected">Please Select...</option>
<option value="253">DEP900</option>
<option value="252">DEP800</option>
<option value="251">DEP700</option>
<option value="250">DEP600</option>
<option value="248">DEP400</option>
<option value="247">DEP300</option>
<option value="246">DEP200</option>
<option value="245">DEP100</option>
<option value="249">DEP500</option>
<option value="254">DEP1000</option>
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据登录者验证页面。某些用户具有更高的安全性,并且会在页面上看到更多项目。当安全性较低的用户登录时,他们将看不到选项。我需要验证页面上不存在这些选项。
我有一个基于用户安全显示的选项的页面对象
testObject {$("#test")}
Run Code Online (Sandbox Code Playgroud)
我试过使用 isDisplayed()
boolean hidden = testObject.isDisplayed()
assert !hidden
Run Code Online (Sandbox Code Playgroud)
但我不断收到一个错误,说
geb.error.RequiredPageContentNotPresent:所需的页面内容geb.navigator.EmptyNavigator'不存在
错误消息是我想要验证的。该对象不存在,我需要验证它是否正确并通过测试。