拿这个夹具我想checkoutId根据before夹具钩子中API 调用的结果来设置,这样我就可以用它来设置我的测试页面
let checkoutId;
fixture`Check out as guest user`
.page`localhost:3001/checkout/start/${checkoutId}`
.before(async () => {
await checkout.getCheckoutId(sampleData.cart)
.then(id => (checkoutId = id));
});
// and here the rest of my tests based on the page
Run Code Online (Sandbox Code Playgroud)
我尝试了fixture hooks,共享变量,但我无法让它工作,请求页面时 checkoutId 未定义。
这种情况甚至可能吗?
testing automated-tests browser-automation e2e-testing testcafe
我一直在使用 Selenium Python 库测试各种自动化任务。在这个过程中我遇到了一个非常严重的问题。这是由于网络连接不良造成的延迟。所有任务的起始步骤都是相同的,即 - 打开浏览器 - 转到网站 - 登录 - 登录后打开特定链接
这些任务需要很长时间,因此我希望找到一种方法,可以重用已经打开的会话并继续在该窗口上进行测试,而不是每次运行脚本时打开新的浏览器窗口。
这是我迄今为止测试过的:
原始文件示例:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(r'C:\testDir\chromedriver_win32\chromedriver.exe', chrome_options=chrome_options)
url = driver.command_executor._url
session_id = driver.session_id
print("URL:",url,"SESSION ID:",session_id)
driver.get('http://www.facebook.com')
username = "---"
password = "---"
driver.find_element_by_name('email').send_keys(username)
driver.find_element_by_name('pass').send_keys(password)
driver.find_element_by_name('login').click()
# time.sleep(2)
driver.maximize_window()
time.sleep(2)
driver.find_elements_by_name('q').send_keys('Ayush Mandowara')
# element = wait.until(EC.presence_of_element_located((By.xpath, '//input[@placeholder="Search"]'))
driver.find_element_by_xpath('//input[@placeholder="Search"]').send_keys('Ayush Mandowara' + Keys.RETURN)
time.sleep(4)
driver.find_element_by_xpath('//div[contains(text(), "Ayush Mandowara")]').click()
time.sleep(3)
driver.find_element_by_class_name('coverBorder').click()
time.sleep(2)
Run Code Online (Sandbox Code Playgroud)
连接文件:
from connectingToPrev import url, session_id
driver = …Run Code Online (Sandbox Code Playgroud) selenium browser-automation python-3.x selenium-chromedriver selenium-webdriver
为什么无法使用 JavaScript方法单击 WhatsApp 网页 ( https://web.whatsapp.com.click() ) 上的任何元素?我正在采取的步骤如下:
.click()在其上触发。我能够找到搜索输入字段,因为它具有唯一的标题值Search or start new chat,但是当我尝试在 Chrome 的 DevTools 控制台中单击它时,没有任何反应。
首先,我认为我可能会点击错误的元素。可以肯定的是,我在 Chrome 上安装了 Katalon Recorder 自动化扩展。然后我记录了所采取的步骤(浏览到 WhatsApp 网页,单击搜索框)。在 Katalon 中播放例程会按预期单击搜索框。我复制了 Katalon 记录的 Xpath 表达式并将整个内容粘贴到document.evaluate(). 事实证明,它与 捕获的输入元素相同querySelectorAll。
在浏览器控制台中,我正在运行以下代码:
let xPath = "(.//*[normalize-space(text()) and normalize-space(.)='Search or start new chat'])[1]/following::input[1]";
let result = document.evaluate(xPath, document);
let searchBox = result.iterateNext();
searchBox.click();
Run Code Online (Sandbox Code Playgroud)
那么,您知道为什么.click()WhatsApp 网页版无法使用吗?我还想知道 Katalon 的不同之处 - 允许它单击所需的元素。我可以在无头浏览器中执行此操作吗?
javascript automation webdriver browser-automation katalon-recorder
我现在正在寻找一段时间,如何在Appium中使用TestCafe。
长话短说:测试环境是一个node.js环境;自动化测试脚本使用TestCafe以打字稿编写 ; 计划是在台式机浏览器和手机上执行这些测试。
桌面浏览器:涵盖了TestCafe和testcafe-browser-provider-selenium以及Selenium网格服务器。
移动电话:我试图通过执行使用移动电话测试,来弥补这一TestCafe连同Appium。
在这里,文档不容易找到,而且我在取得任何进展方面也没有运气。我对从Testcafes端需要执行的操作很感兴趣,因为在LAN内,我可以访问已运行的Appium服务器,并将其连接到实际设备。
是否有人使用上述工具并想分享专有技术?有人可以建议任何链接/ YouTube视频/或任何可能在这个方向上有所帮助的东西吗?TIA!
PS:我已经看到了此链接,但它没有帮助,因为它需要人机交互并且还不是完全自动化的:TestCafe移动设备测试的QR码建议
以后编辑:
使用testcafe-browser-provider-webdriverio软件包不能解决问题,因为它存在一些连接问题。因此,我重新寻找解决方案,但我拒绝相信上述方案没有选择 ...
我想在 Ruby 中读取文档文件 .txt,但本文档的以下几行包含表情符号。当我运行程序时,它会向我显示不同的符号,而不是实际的表情符号。
我已经尝试过不同的方法。我该怎么做,我应该安装任何 gem 吗?
file='document.txt'
Run Code Online (Sandbox Code Playgroud)
本文档包含以下带有表情符号的行:
这是一条测试线
File.readlines(file).each do |line|
puts line
end
Run Code Online (Sandbox Code Playgroud) 我正在使用 playwright.js 为https://target.com编写脚本,并且在您提交运输信息的页面上,如果您之前已完成结帐流程,它将提供使用已保存地址的选项目标帐户。
我想每次运行脚本时都输入新的运输信息,所以我必须让编剧在页面上点击删除,然后输入运输信息。
下面显示的函数用于单击删除,但随后超时if (await page.$$("text='Delete'") != [])而不是执行else该函数的一部分。
我怎样才能重写这个函数,让它简单地检查元素(选择器:)是否text='Delete'存在,如果存在则单击它,如果不存在则执行函数的填充部分?
async function deliveryAddress() {
if (await page.$$("text='Delete'") != []) {
await page.click("text='Delete'", {force:true})
await deliveryAddress()
} else {
await page.focus('input#full_name')
await page.type('input#full_name', fullName, {delay: delayms});
await page.focus('input#address_line1')
await page.type('input#address_line1', address, {delay: delayms});
await page.focus('input#zip_code')
await page.type('input#zip_code', zipCode, {delay: delayms});
await page.focus('input#mobile')
await page.type('input#mobile', phoneNumber, {delay: delayms});
await page.click("text='Save & continue'", {force:true})
}
}
Run Code Online (Sandbox Code Playgroud) 我们如何测试具有基于 Azure AD 的身份验证的 SPA?当用户打开应用程序时,用户首先被发送到 login.microsoftonline.com,并在输入用户电子邮件后,页面重定向回应用程序主页。在这种情况下,我们如何使用 Playwright 实现自动化?
我正在具有输入元素的 Jenkins 页面上运行 Playwright 脚本。当我尝试使用fill文本输入之一时,它失败并出现以下错误:
(node:3337) UnhandledPromiseRejectionWarning: page.fill: Protocol error (Page.insertText): error in channel "content::page": exception while running method "insertText" in namespace "page": Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsITextInputProcessor.commitCompositionWith] _insertText@chrome://juggler/content/content/PageAgent.js:891:32\nRun Code Online (Sandbox Code Playgroud)\n我尝试在DEBUG=pw:api environment启用的情况下运行,但那里的日志没有太大帮助。从正常的控制台日志中我得到以下日志:
waiting for selector "input[name="_.buildNumber"]"\n selector resolved to visible <input value="" type="text" name="_.buildNumber" class=\xe2\x80\xa6/>\nelementHandle.fill("54")\n waiting for element to be visible, enabled and editable\n element is visible, enabled and editable\nRun Code Online (Sandbox Code Playgroud)\n因此,该元素似乎存在并且可以编辑,但由于某种原因,剧作家未能成功尝试填充它。我在这里缺少什么?
\n您好我试图自动化我的IE登录到一个网站,但问题是输入元素没有HTML ID属性!例如:
<input type="text" name="user" size="15" value="">
如何编写C#以在此文本框中插入文本?
谢谢
我需要使用 vbscript 拍摄页面的完整快照,为此我需要向下滚动一点。实际上,我可以在快照中拍摄页面的一半,但我还需要在下一个快照中拍摄剩余部分。
页面加载后我尝试使用以下内容
ie.document.body.doScroll("pageDown")
Run Code Online (Sandbox Code Playgroud)
但它不是向下滚动页面,有没有更好的方法可以做到这一点,实际上我不想向下滚动页面,而只是向下滚动 100 像素,有什么方法可以做到这一点吗?
提前致谢。
playwright ×3
automation ×2
e2e-testing ×2
javascript ×2
node.js ×2
testcafe ×2
appium ×1
autofill ×1
c# ×1
emoji ×1
html ×1
puppeteer ×1
python-3.x ×1
ruby ×1
selenium ×1
testing ×1
typescript ×1
vbscript ×1
watir ×1
webdriver ×1
webforms ×1