cypress-wait-until 相关问题


使用cypress-cucumber-preprocessor时,如何使用标签来过滤规格和功能?

我有 Cypress 项目设置,这样我就可以一次性编写和运行 Spec 和 Cucumber 测试。 cypress run --spec“cypress/tests/gsac/specs/*.cy.js,cypress/tests/gsac/*.feature” 有效


如何在 cypress-io/github-actions 测试期间更改 baseURL

我正在尝试使用 Github Actions 运行我的 Cypress 测试。我已完成所有设置,但我遇到了在 GitubActions 过程中设置然后传递给 Cypress 的 baseURL 变量的问题。在我的


Cypress 的负面断言

在 Cypress 中,如果我有一个触发异步操作(如 fetch)的按钮,并且我想验证单击此按钮最终不会触发错误,这是否足够? cy.findByTe...


如何在 Cypress Desktop 上隐藏成功的断言日志,但显示失败的断言日志?

我一直想知道如何在 Cypress Desktop (npx cypress open) 上隐藏成功的断言日志,但显示失败的断言日志? 赛普拉斯用户界面 我一直在 stackoverflow 中搜索(类似的问题),


401 - 赛普拉斯 io 自动测试未经授权

第一次为内部网站(http://XXXX:8089/)编写Cypress(cypress Io框架)自动测试。访问该网站主页需要使用活动目录的特殊权限(...


使用 Cypress 连接到 SQL DB

我正在尝试按照 NPM 指南使用 cypress 连接 SQL 数据库。所有依赖项都与所提到的完全相同,但是在运行时 cy.sqlServer('从 [MyDB].[dbo].[用户] 中选择电子邮件...


陷入 Cypress - 登录冗余

我目前正在努力解决一个持续存在的问题,希望得到一些指导。我正在利用 Cypress 进行测试,并且我正在尝试找到一种方法来避免每次测试重复登录......


如果需要很长时间,如何在Javascript中设置稍后执行的函数?

函数等待() { 让 a = Date.now() while (Date.now() - 一个 < 3000) { //loop } console.log('waiting ends...') } function start(){ console.log('starts...') wait() }


使用 Microsoft Graph 获取所有电子邮件 - 版本 5.2.0 或更高版本

我的原始代码是: var messages = wait graphClient.Users["[email protected]"].MailFolders[folderName].Messages.GetAsync(); 我正在使用 Microsoft.Graph 5.2.0。 不幸的是...


在 knex 查询中的 ts 泛型中显示错误 [symbol.iterator()]

const [用户]: T = wait db("users").select("*").returning("*"); // 错误:类型“T”必须具有返回迭代器的“[Symbol.iterator]()”方法。 我的膝盖查询


如何解决加载响应数据失败:未找到具有给定标识符的资源的数据

发布API 导出 const resendInvitation = async (userName) => { wait API.post( 'delta-api',user-mgmt/users/${userName}/resendInvitation, {} ); }; const handleResendInvitation = async () =>...


TypeORM,基于关系属性查询实体

我想根据相关属性查询实体,例如: const x = wait repo.findOne({ name: 'foo', Parent: { name: 'foo' }}); 但当我通过它的 r 查询时,它会返回 null...


mongoose 中的 finOne() 失败并显示 MongoServerError: Expected field collationto be of type object

我正在尝试使用express和MongoDb实现简单的注册验证,但下面的代码行总是失败并出现以下错误 const emailExist = wait User.findOne({email: req.body.


Cypress 将文件写入新的夹具或文件夹

如何将数组或集合字符串存储到变量中。然后获取该信息并将其保存到新的夹具中。目的是在不同的场景中重新使用该灯具,或者......


java多线程生产者-消费者混淆结果

我是Java多线程的初学者。这里有一个关于生产者-消费者模型和wait、notifyAll方法的演示代码,但是我发现结果很难理解。 公共...


从同一 URL 获得不同的响应

我正在开发一个 React 应用程序,我使用 Cypress 进行测试。我的要求是比较我们在应用程序中发送的有效负载和生态系统(数据库/后端)的有效负载。通过使用‘Interce...


$or 来自 mongoose 的运算符在与 find() 方法一起使用时未提供所有必要的数据

我使用 find 方法和 $or 运算符来检查数据库中是否存在此行中任何现有的重复数据 const duplice = wait NewItemsData.find({ $or: newItems });检查...


当其中一个属性是通过 API 调用获得的另外两个属性计算出来时,如何填充模型属性?

[已解决] 我没有将反向地理代码视为异步函数,从而导致计时问题和数据无法正确填充。使用 async wait 解决了这个问题。 解决方案: func getCurrentWeat...


MVC ASP.NET Core Identity,创建登录、注册操作。 AuthController

公共类AuthController:控制器 { SignInManager _signInManager { 获取; } UserManager _userManager { 获取; } 角色管理器 public class AuthController : Controller { SignInManager<AppUser> _signInManager { get; } UserManager<AppUser> _userManager { get; } RoleManager<IdentityRole> _roleManager { get; } public AuthController(SignInManager<AppUser> signInManager, UserManager<AppUser> userManager, RoleManager<IdentityRole> roleManager) { _signInManager = signInManager; _userManager = userManager; _roleManager = roleManager; } public IActionResult Login() { return View(); } [HttpPost] public async Task<IActionResult> Login(string? returnUrl,LoginVM vm) { AppUser user; if (!ModelState.IsValid) { return View(vm); } if (vm.UsernameOrEmail.Contains("@")) { user = await _userManager.FindByEmailAsync(vm.UsernameOrEmail); } else { user = await _userManager.FindByNameAsync(vm.UsernameOrEmail); } if (user == null) { ModelState.AddModelError("", "Username or password is wrong"); return View(vm); } var result = await _signInManager.PasswordSignInAsync(user, vm.Password, vm.IsRemember, true); if (!result.Succeeded) { if (result.IsLockedOut) { ModelState.AddModelError("", "Too many attempts wait until " + DateTime.Parse(user.LockoutEnd.ToString()).ToString("HH:mm")); } else { ModelState.AddModelError("", "Username or password is wrong"); } return View(vm); } if (returnUrl != null) { return LocalRedirect(returnUrl); } return RedirectToAction("Index","Home"); } public IActionResult Register() { return View(); } [HttpPost] public async Task<IActionResult> Register(RegisterVM vm) { if (!ModelState.IsValid) { return View(vm); } var user = new AppUser { Fullname = vm.Fullname, Email = vm.Email, UserName = vm.Username }; var result = await _userManager.CreateAsync(user, vm.Password); if (!result.Succeeded) { foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return View(vm); } var roleResult = await _userManager.AddToRoleAsync(user, Roles.Member.ToString()); if (!roleResult.Succeeded) { ModelState.AddModelError("", "Something went wrong. Please contact admin"); return View(vm); } return View(); } public async Task<IActionResult> Logout() { await _signInManager.SignOutAsync(); return RedirectToAction("Index", "Home"); } public async Task<bool> CreateRoles() { foreach (var item in Enum.GetValues(typeof(Roles))) { if (!await _roleManager.RoleExistsAsync(item.ToString())) { var result = await _roleManager.CreateAsync(new IdentityRole { Name = item.ToString() }); if (!result.Succeeded) { return false; } } } return true; } } } 所以,我在代码中搞乱了登录、注册和注销,现在这个 RoleManager 的事情让我摸不着头脑。我只是想为我的管理员用户提供一些额外的权力,但我有点不知道该怎么做。如果您能用简单的语言解释步骤或需要进行哪些更改来帮助我,那就太棒了。 我的目标是让管理员用户在我的系统中体验更好,您对此的建议非常有用。尝试了解 RoleManager 的事情以及如何为我的管理员用户提供更多能力。您直接的帮助可能会对我解决这个问题产生很大的影响! 定义管理员角色 创建管理员用户 更新注册流程: var roleResult =等待_userManager.AddToRoleAsync(用户,vm.IsAdmin? Roles.Admin.ToString() : Roles.Member.ToString()); 使用管理员角色: [授权(角色=“管理员”)] 公共 IActionResult AdminDashboard() { // 特定于管理的逻辑 } 5.提升管理能力: if (User.IsInRole("管理员")) { // 特定于管理的逻辑 } 中间件配置: services.AddIdentity() .AddRoles() .AddEntityFrameworkStores(); 7.创建角色方法: 公共无效配置(IApplicationBuilder 应用程序,IHostingEnvironment env) { // 其他中间件配置 // Create roles during application startup var authController = new AuthController(/* inject your dependencies here */); authController.CreateRoles().GetAwaiter().GetResult(); }


使用selenium在联合选择/列表元素中导航

我正在使用 beautifulSoup / selenium 进行一些网络抓取,但在使用某个下拉选择菜单时遇到了困难。粗略的 HTML 如下: 我正在使用 beautifulSoup / selenium 进行一些网络抓取,但在使用某个下拉选择菜单时遇到了困难。粗略的HTML如下: <div class="selection-box" alt="selection" title="selection" role="select" tabindex="0"> <select id="select" style="display: none;"> <option value="1">First</option> <option value="2">Second</option> <option value="3" selected="selected">Third</option> </select> <div class="current">Third</div> <ul class="options" style="display: none;"> <li class="search--option" alt="First option" title="First option" aria-label="First option" role="option" tabindex="0">First</li> <li class="search--option" alt="Second option" title="Second option" aria-label="Second option" role="option" tabindex="0">Second</li> <li class="search--option selected" alt="Third option" title="Third option" aria-label="Third option" role="option" tabindex="0">Third</li> </ul> 当我通过浏览器操作菜单时,它会发生如下变化: 包装 div 类更改为“选择框活动” ul 更改为“display: block” 一旦我选择了不同的选项,这两个选项就会再次颠倒,中间的 div 和所选的 li 项目也会相应变化 我想使用selenium来选择某个选项。到目前为止,我尝试了以下方法: from selenium.webdriver.support.ui import Select drpBrand = driver.find_element(By.ID, "select"); css = 'select#select' # css selector of the element js = """const data_options = Array.from(document.querySelectorAll('{css}')); data_options.forEach(a=>{{a.style='display:block;';}});""".format(css=css) driver.execute_script(js) drpBrand.select_by_visible_text("Third"); 这是使用各种线程的最佳方法(元素不可见:元素当前不可见并且可能无法操作 - Selenium webdriver,How to select a dropdown value in Selenium WebDriver using Java),但它仍然没有不工作。有任何想法吗?我想我还需要定位列表(除了选择之外)? 错误总是存在 selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互:元素当前不可见,可能无法操作 谢谢 如果我正确理解您的目标(选择下拉选项),我建议模拟本机用户行为并依赖可见元素。 下拉元素有选择器 .superstar-search--selection-box。 您应该等待它出现并单击它。 下拉选项有选择器 .superstar-search--option 。您应该等待此元素的可见性并过滤它们,例如,通过包含文本条件。 您可以通过将下拉打开选择器和下拉选项选择器定义为函数参数来构建比我编写的更复杂的函数。 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("https://www.wwe.com/superstars") wait = WebDriverWait(driver, 15) def select_dropdown_option_by_text(text): dropdown = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.superstar-search--selection-box'))) dropdown.click() options = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, '.superstar-search--option'))) expected_option = [element for element in options if element.text.lower() == text] expected_option[0].click() select_dropdown_option_by_text('all superstars')


© www.soinside.com 2019 - 2024. All rights reserved.