diff --git a/dotnet/docs/api/class-page.mdx b/dotnet/docs/api/class-page.mdx
index 0e5debf475..3f5cbcb462 100644
--- a/dotnet/docs/api/class-page.mdx
+++ b/dotnet/docs/api/class-page.mdx
@@ -2442,7 +2442,11 @@ await page.GotoAsync("https://www.microsoft.com");
**Arguments**
- `width` [int] Added in: v1.10#
+
+ Page width in pixels.
- `height` [int] Added in: v1.10#
+
+ Page height in pixels.
**Returns**
- [void]#
diff --git a/java/docs/api/class-page.mdx b/java/docs/api/class-page.mdx
index 33d1b644ce..904074a598 100644
--- a/java/docs/api/class-page.mdx
+++ b/java/docs/api/class-page.mdx
@@ -1965,7 +1965,11 @@ page.navigate("https://example.com");
**Arguments**
- `width` [int] Added in: v1.10#
+
+ Page width in pixels.
- `height` [int] Added in: v1.10#
+
+ Page height in pixels.
**Returns**
- [void]#
diff --git a/nodejs/docs/api/class-androiddevice.mdx b/nodejs/docs/api/class-androiddevice.mdx
index 99079e4a5f..2334fe87c5 100644
--- a/nodejs/docs/api/class-androiddevice.mdx
+++ b/nodejs/docs/api/class-androiddevice.mdx
@@ -450,6 +450,8 @@ await androidDevice.open(command);
**Arguments**
- `command` [string]#
+
+ Shell command to execute.
**Returns**
- [Promise]<[AndroidSocket]>#
diff --git a/nodejs/docs/api/class-test.mdx b/nodejs/docs/api/class-test.mdx
index 230dc164b8..e142302698 100644
--- a/nodejs/docs/api/class-test.mdx
+++ b/nodejs/docs/api/class-test.mdx
@@ -1325,6 +1325,8 @@ test('test', async ({ page }) => {
Whether to box the step in the report. Defaults to `false`. When the step is boxed, errors thrown from the step internals point to the step call site. See below for more details.
- `location` [Location] *(optional)* Added in: v1.48#
+
+ Specifies a custom location for the step to be shown in test reports and trace viewer. By default, location of the [test.step()](/api/class-test.mdx#test-step) call is shown.
**Returns**
- [Promise]<[Object]>#
diff --git a/nodejs/docs/api/class-testinfo.mdx b/nodejs/docs/api/class-testinfo.mdx
index e9b4835f85..27774ba5de 100644
--- a/nodejs/docs/api/class-testinfo.mdx
+++ b/nodejs/docs/api/class-testinfo.mdx
@@ -725,7 +725,10 @@ testInfo.status
Tags that apply to the test. Learn more about [tags](../test-annotations.mdx#tag-tests).
-Note that any changes made to this list while the test is running will not be visible to test reporters.
+:::note
+
+Any changes made to this list while the test is running will not be visible to test reporters.
+:::
**Usage**
diff --git a/src/api_parser.js b/src/api_parser.js
index f2818e7ac7..0718ccb492 100644
--- a/src/api_parser.js
+++ b/src/api_parser.js
@@ -165,7 +165,7 @@ class ApiParser {
if (!name)
throw new Error('Invalid member name ' + spec.text);
if (match[1] === 'param') {
- const arg = this.parseProperty(spec);
+ const arg = this.parseProperty(spec, match[2]);
if (!arg)
return;
arg.name = name;
@@ -182,7 +182,7 @@ class ApiParser {
}
} else {
// match[1] === 'option'
- const p = this.parseProperty(spec);
+ const p = this.parseProperty(spec, match[2]);
if (!p)
return;
let options = method.argsArray.find(o => o.name === 'options');
@@ -198,11 +198,14 @@ class ApiParser {
/**
* @param {MarkdownHeaderNode} spec
+ * @param {string} memberName
* @returns {docs.Member | null}
*/
- parseProperty(spec) {
+ parseProperty(spec, memberName) {
const param = childrenWithoutProperties(spec)[0];
const text = /** @type {string}*/(param.text);
+ if (text.substring(text.lastIndexOf('>') + 1).trim())
+ throw new Error(`Extra information after type while processing "${memberName}".\nYou probably need an extra empty line before the description.\n================\n${text}`);
let typeStart = text.indexOf('<');
while ('?e'.includes(text[typeStart - 1]))
typeStart--;