我想使用Selenium自动执行一些Web任务(不用于测试).我认为我安装了Selenium RC Server,但由于我在PHP中找不到客户端驱动程序,因此无法编写"测试脚本"(参见:http://seleniumhq.org/download/).
有没有办法让我使用Selenium和PHP?这似乎表明我需要PHPUnit http://www.phpunit.de/manual/current/en/selenium.html.我只想自动执行一些任务,而不是参与全套测试.
使用ASP.NET,标签ID非常不稳定,所以为了使我的测试更加健壮,我想通过标签文本定位元素.我已经和WatiN玩了一些并且完美地做到了这一点但是现在这个项目似乎有点死了所以我认为在决定框架之前我也会考虑Selenium.
我有html看起来像这样
<label for="ctl00_content_loginForm_ctl01_username">Username</label>:
<input type="text" id="ctl00_content_loginForm_ctl01_username" />
Run Code Online (Sandbox Code Playgroud)
我不想输入:
selenium.Type("ctl00_content_loginForm_ctl01_username", "xxx");
Run Code Online (Sandbox Code Playgroud)
这太依赖于身份证.在WatiN我会写:
browser.TextField(Find.ByLabelText("Username")).TypeText("xxx");
Run Code Online (Sandbox Code Playgroud)
有没有办法在Selenium做到这一点?
TestCafe克服了哪些问题证明它适用于Selenium?是否值得将旧的测试套装移植到TestCafe?
automated-tests web-testing selenium-webdriver e2e-testing testcafe
我正在使用jest-puppeteer来运行我的网络测试.如果我运行我在一个文件中定义的测试,一切都很完美.
describe('user', () => {
jest.setTimeout(12000);
beforeEach(async () => {
await page.setViewport({width: 1200, height: 2000});
await page.goTo('http://localhost:3000');
});
it('test 1', async () => {
//my test steps
});
it('test 2', async () => {
//my test steps
});
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我在自己的文件中运行每个测试,我会收到错误.
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'addExpectationResult' of undefined
Run Code Online (Sandbox Code Playgroud)
文件1
describe('user', () => {
jest.setTimeout(12000);
beforeEach(async () => {
await page.setViewport({width: 1200, height: 2000});
await page.goTo('http://localhost:3000');
});
it('test 1', async () => {
//my test steps
});
});
Run Code Online (Sandbox Code Playgroud)
文件2
describe('user', () …Run Code Online (Sandbox Code Playgroud) 在修复网站代码以使用CDN(将所有网址重写为图像,js和css)之后,我需要测试域中的所有页面以确保从CDN获取所有资源.
所有网站页面都可以通过链接访问,没有孤立的页面.
目前我正在使用FireBug并检查"网络"视图...
是否有一些自动方式来提供域名并请求域的所有页面+资源?
更新:
好的,我发现我可以这样使用wget:
wget -p --no-cache -e robots=off -m -H -D cdn.domain.com,www.domain.com -o site1.log www.domain.com
Run Code Online (Sandbox Code Playgroud)
选项说明:
-p - 也下载资源(图像,CSS,js等)--no-cache - 获取真实对象,不要返回服务器缓存对象-e robots=off- 无视robots和no-follow指示-m - 镜像站点(点击链接)-H - span hosts(也可以关注其他域名)-D cdn.domain.com,www.domain.com - 指定要遵循的女巫域名,否则将遵循页面中的每个链接-o site1.log - 登录文件site1.log-U "Mozilla/5.0" - 可选:假用户代理 - 如果服务器为不同的浏览器返回不同的数据,则非常有用www.domain.com - 要下载的网站请享用!
假设我想在我的网站上执行以下测试:
我知道如何为此创建Selenium测试.我也知道如何进行此项测试browserstack.com手动,也就是通过启动BrowserStack VM对每个浏览我的需要,然后执行这些步骤.
如何将Selenium测试(可以是JS或C#或其他)与BrowserStack结合使用,以便BrowserStack在我需要的所有浏览器中执行测试,然后向我发送一些报告,就像一堆截图?
BrowserStack在http://www.browserstack.com/automated-browser-testing-api上提供了一些关于TestSwarm和Selenium的小文档,但由于我是Web测试主题的新手,我看不到BrowserStack,Selenium也许TestSwarm可以互动.
编辑: Selenium和Testswarm只是示例,我不喜欢任何框架,我只需要自动化BrowserStack.
以下是其显示的相关错误:
java.exe不是可识别的文件,作为内部或外部命令,可操作或外部命令
错误级别= 9009
我想在我的一个项目上做一些单元测试.这是一个Web项目,除了开发副本之外,只有一个程序副本.
我想写一些将使用的单元测试web.config.我理解通常情况下,测试人员会将这种外部依赖关系存根,因为他希望在没有测试的情况下测试代码,具体取决于web.config保持某些值.
但是,web.config在我的项目中应该始终保持某些值,并且我希望单元测试如果设置为无效值则会失败.例如,其中一个值是SQL连接字符串.
我想编写一个测试来读取连接字符串web.config.我设想测试可以连接到具有连接字符串的服务器,并且可能执行非常简单的命令SELECT system_user;.如果命令成功执行并返回测试通过的内容.否则,它失败了.我希望从web.config我正在测试的项目中读取连接字符串.
当然,ConfigurationManager通常不会web.config在另一个项目中寻找.我可以手动将web.config原始项目复制到测试项目中,但在每次测试之前我都必须这样做,我无法指望其他任何人这样做.
如何让我的测试项目web.config从另一个项目中读取?
我在python中使用selenium webdriver自动驱动Firefox,python脚本从Firefox中的selenium IDE插件导出.但是当我运行脚本时会引发错误:
======================================================================
ERROR: test_selenium (__main__.SeleniumTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "selenium_test.py", line 8, in setUp
self.driver = webdriver.Firefox()
File "C:\Python26\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 46, in __init__
self.binary, timeout),
File "C:\Python26\lib\site-packages\selenium\webdriver\firefox\extension_connection.py", line 46,
in __init__
self.binary.launch_browser(self.profile)
File "C:\Python26\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 44, in lau
nch_browser
self._wait_until_connectable()
File "C:\Python26\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 87, in _wa
it_until_connectable
raise WebDriverException("Can't load the profile. Profile Dir : %s" % self.profile.path)
WebDriverException: Can't load the profile. Profile Dir : c:\users\ataosky\appdata\local\temp\tmpwpz
zrv
----------------------------------------------------------------------
Ran 1 test in 67.876s
FAILED …Run Code Online (Sandbox Code Playgroud) 我正在尝试以编程方式测试网站列表的加载时间.目的是粗略模拟用户将感知的页面加载时间.
我的第一种方法是在循环中调用以下内容:
startTime = System.currentTimeMillis();
driver.get("http://" + url);
diff = System.currentTimeMillis() - startTime;
System.out.println("Load time was " + diff);
Run Code Online (Sandbox Code Playgroud)
问题是有时候我会在页面真正加载之前获得时间结果(即我得到50ms的时间),所以我猜控制在driver.get()完成之前被传递给下一条指令.
我该怎么做才能改进这个测试?
编辑:
正如user1258245建议我可以等待元素加载但问题是我不知道哪些页面预先加载.
web-testing ×10
selenium ×5
testing ×3
e2e-testing ×2
unit-testing ×2
asp.net ×1
automation ×1
browserstack ×1
delay ×1
java ×1
jestjs ×1
jmeter ×1
php ×1
puppeteer ×1
python ×1
qa ×1
selenium-rc ×1
testcafe ×1
testswarm ×1
watin ×1
web ×1
web-config ×1
webdriver ×1
webtest ×1
wget ×1