正如标题所述,Nightwatch.js和Webdriver.io有什么区别?
看起来他们有相同的语法,并做几乎相同的事情.他们有什么不同?
我需要在它们之间做出选择.
仅当我将ios驱动程序 jar作为Node.js子项生成时才会发生此错误.
错误是 java.net.SocketException: Protocol family unavailable
硒test.js:
var spawn = require('child_process').spawn;
var selenium = spawn('java', ['-jar', './ios-server-standalone-0.6.6-SNAPSHOT.jar', '-port', '4444']);
selenium.stderr.setEncoding('utf8');
selenium.stderr.on('data', function (data){
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
webdriverjs-test.js(webdriverjs)
var webdriverjs = require('webdriverjs');
var options = {
desiredCapabilities: {
browserName: 'safari',
platform: 'OS X 10.9',
version: '7.1',
device: 'iphone'
}
};
webdriverjs
.remote(options)
.init()
.end();
Run Code Online (Sandbox Code Playgroud)
通过创建上述文件重现此错误,在一个窗口中运行selenium-test.js,在另一个窗口中运行webdriverjs-test.js.你首先需要npm install webdriverjs和curl -O http://ios-driver-ci.ebaystratus.com/userContent/ios-server-standalone-0.6.6-SNAPSHOT.jar
版本信息:
$ java version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) …Run Code Online (Sandbox Code Playgroud) 如何使用Selenium WebDriver 获取整个网页的截图(整页截图),而不仅仅是部分(从上到下)?
我的代码:(Java绑定)
System.setProperty("webdriver.chrome.driver","/home/alex/Downloads/chromedriver_linux64/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("http://google.com");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(RESULT_FILENAME));
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
我试图在google_search_test.js位于的文件中运行示例测试\node_modules\selenium-webdriver\example.我使用的是WebdriverJS,只selenium-webdriver在我的系统中安装了NPM软件包.
我已在命令提示符中移动到该路径位置并运行以下命令: node google_search_test.js
我收到以下错误:

错误描述:
Path\node_modules\selenium-webdriver\example>node google_search_test.js
Path\node_modules\selenium-webdriver\testing\index.js:184
exports.describe.skip = global.describe.skip;
^
TypeError: Cannot read property 'skip' of undefined
at Object.<anonymous> (C:\Users\kanasra\Desktop\Jaguars\Automation Testing\N
odeJs\node_modules\selenium-webdriver\testing\index.js:184:40)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Users\kanasra\Desktop\Jaguars\Automation Testing\N
odeJs\node_modules\selenium-webdriver\example\google_search_test.js:24:12)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
Run Code Online (Sandbox Code Playgroud) 我在打开网站时遇到了有关 Selenium Webdriver 速度的令人厌恶的问题。
我正在测试的网站是内部网站,因此您无法访问。为了详细描述我的问题,我将将该网站称为ABC。
当我ABC在 Chrome 浏览器中输入 的 URL 时,只需要 1 秒钟即可打开该网站。
在 TestNG 中,我的 Selenium 客户端如下所示:
String ABC = "ABC'S URL";
String chromeDriverPath = "C:\\selenium\\chromedriver.exe" ;
System.out.println("start selenium");
File file = new File(chromeDriverPath);
System.setProperty("webdriver.chrome.driver",file.getAbsolutePath());
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
webDriver driver = new ChromeDriver(options);
driver.get(ABC);
Run Code Online (Sandbox Code Playgroud)
然后,Chrome将由自动化测试软件控制。在足迹上,会有一个注释,写着waiting for staticxx.fackbook.com, 或waiting for www.facebook.com。
1分钟后,ABC网站已成功加载。我检查F12工具并在控制台中显示staticxx.facebook.com/connect/xd_arbiter/r/0F7S7QWJ0Ac.js?version=42#channel=f38f3479a8af658&origin=http%
Failed to load resource: the server responded with a status of 503 …
我创建了一个样板React项目,packages.json有通常的嫌疑:
我正在使用Selenium作为我的E2E框架.我有以下测试:
it('should launch a browser', () => {
const By = webDriver.By;
let driver = new webDriver.Builder()
.forBrowser('chrome')
.build();
// verify Continue button exist on page
driver.navigate().to('http://localhost:3000').then(() => driver.findElement(By.id('submitButton')).getAttribute('value'))
.then(buttonValue => expect(buttonValue).toEqual('Continue'));
});
Run Code Online (Sandbox Code Playgroud)
如果我这样做npm start,我的网站将启动,我的E2E会启动一个额外的Chrome浏览器并导航到我的运行网站:localhost:3000.测试成功.
我的问题是,如何单独运行我的E2E,而不需要我的网站并排使用npm start.
我是React和Selenium的新手,如果我在这篇文章中遗漏了很多信息,我会事先道歉.
我正在尝试使用Staggered Grid显示任何图片,但是出现了许多问题。
首先,当我拉到顶部时,它会移动项目,例如从左到右移动,或交换左右列。
见下文.gif:
我已经通过谷歌搜索了这个问题的解决方案。我在我的项目中使用此代码:
StaggeredGridLayoutManager Layoutmanager = new StaggeredGridLayoutManager(3, OrientationHelper.VERTICAL);
manager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
recyclerView.setLayoutManager(manager);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
((StaggeredGridLayoutManager)recyclerView.getLayoutManager()).invalidateSpanAssignments();
}
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我向上滚动时仍然出现严重的问题。该项目仍然会移动,即使我只是很快滚动,它也会滚动很远。
见下文.gif:
我该如何处理这些问题,或者以其他方式达到这种效果?
主要活动:
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private photos[] photoses = {
new photos("Tags:",R.drawable.timg),
new photos("Tags:",R.drawable.timg1),
new photos("Tags:",R.drawable.timg2),
new photos("Tags:",R.drawable.timg3),
new photos("Tags:",R.drawable.timg4),
new photos("Tags:",R.drawable.timg5),
new photos("Tags:",R.drawable.timg6),
new photos("Tags:",R.drawable.timg7),
new photos("Tags:",R.drawable.timg8),
new photos("Tags:",R.drawable.timg9),
new photos("Tags:",R.drawable.timg10),
new photos("Tags:",R.drawable.timg11),
new photos("Tags:",R.drawable.timg12),
}; …Run Code Online (Sandbox Code Playgroud) 我一直在尝试将 Identity Server 4 合并到我的 ASP.NET Core 3 应用程序中,但不断收到以下错误:
没有为方案“Identity.Application”注册登录身份验证处理程序。
注册的登录方案有: Cookie。你忘记打电话了吗AddAuthentication().AddCookies("Identity.Application",...)?我不确定这个错误是什么意思。
我查看了这个SO问题,这篇(在ASP.NET Core中使用特定方案授权) MS .NET文章以及其他几篇文章,但没有一个有帮助。
我的Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
var appSettingsSection = Configuration.GetSection("AppSettings");
services.Configure<AppSettings>(appSettingsSection);
var appSettings = appSettingsSection.Get<AppSettings>();
var key = Encoding.ASCII.GetBytes(appSettings.Secret);
services
.AddAuthentication(x =>
{
x.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme) // , opt => opt.LoginPath = "/Identity"
.AddJwtBearer(opt =>
{
opt.RequireHttpsMetadata = false;
opt.SaveToken = true;
opt.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用WebdriverIO截取整个页面的屏幕截图。
我读过,最好的方法是使用WebdriverCSS增强我的WebdriverIO流。WebdriverCSS自动截图整个页面?
问题是WebdriverCSS对我不起作用。我认为是因为它尚未与兼容webdriverio@3.0.x。
有什么办法可以使它起作用,或者可以使用其他解决方案?
我的代码:(这是生产什么,但在回调中未定义的值)
// Initialize WebdriverCSS for `client` instance
require('webdrivercss').init(driver, {
// example options
screenshotRoot: '../../screenshots',
failedComparisonsRoot: '../../screenshots/diffs',
misMatchTolerance: 0.05
});
// ...
// driver gets initialized and url opened
// ...
driver.webdrivercss('page', {
name: 'body',
elem: 'body'
}, function(err, res) {
// here the values of err and res are always undefined
})
.saveScreenshot('../../screenshots/webdrivercsstest.png');
// the screenshot works, but it's not full page
Run Code Online (Sandbox Code Playgroud)
!EDIT: 这是Chromium中的一个已知BUG,很可能不会修复。请参阅此链接以获取更多详细信息。
selenium automated-tests selenium-webdriver webdriver-io wdio-v4
我正在尝试自动快速创建新笔记,并且Notes.app我想在单个浮动窗口中打开新创建的笔记。
这是我创建注释的代码:
set RunTime to ((current date)) as string
tell application "Notes"
activate
tell account "iCloud"
make new note at folder "Notes" with properties {name:RunTime}
--does not work
--open document {name:RunTime}
end tell
end tell
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
selenium ×5
java ×2
javascript ×2
node.js ×2
wdio-v4 ×2
webdriver-io ×2
android ×1
applescript ×1
asp.net ×1
c# ×1
e2e-testing ×1
macos ×1
mocha.js ×1
reactjs ×1
screenshot ×1
testng ×1
wdio-v5 ×1
webdriver ×1