@browserstack/mcp-server 2.3.0-beta.8 → 2.3.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/capability/devicecontrol.capability-index.json +6 -4
- package/capability/loadtesting.capability-index.json +2934 -2933
- package/capability/mobiledevicecontrol.capability-index.json +34 -42
- package/capability/tm.capability-index.json +49977 -49971
- package/capability/tra.capability-index.json +31584 -31583
- package/dist/tools/applive.js +1 -1
- package/dist/tools/capability-registry/register.js +9 -2
- package/dist/tools/capability-registry/types.d.ts +8 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"version": "1.0",
|
|
4
4
|
"build_id": "8445466_2026-10-19T06:53:46Z",
|
|
5
5
|
"devicecontrol": {
|
|
6
|
+
"title": "Device Control (Automate)",
|
|
6
7
|
"summary": "Device control: drive a real desktop or mobile browser page by page. The account side lists every operating system, browser and version combination available, reports parallel-session capacity, and keeps each session's record \u2014 status, shareable link, video, and console, network and profiling logs \u2014 after the browser is released. The session side opens a browser on a chosen combination and drives it: navigate, go back and forward, reload, find elements by CSS or XPath, click, type, clear, screenshot the viewport, resize the window, and move between tabs and iframes. Web pages are RUN here \u2014 unlike Test Management, which authors cases, and Test Reporting, which records results pushed in from a runner. Mobile APPS are not here: those are mobile device control, which drives an installed app rather than a browser. Scrolling is done with scroll_to_element or scroll_page, there is no capability that waits, and element ids go stale as soon as the page navigates or re-renders. A session holds a browser until it is ended.",
|
|
7
8
|
"routing_terms": [
|
|
8
9
|
"automate",
|
|
@@ -25,7 +26,6 @@
|
|
|
25
26
|
"scroll",
|
|
26
27
|
"iframe",
|
|
27
28
|
"tab",
|
|
28
|
-
"cookie",
|
|
29
29
|
"screenshot",
|
|
30
30
|
"console logs",
|
|
31
31
|
"network logs",
|
|
@@ -843,7 +843,7 @@
|
|
|
843
843
|
"intent": "Type into a field \u2014 use this to fill a search box, a login form or any editable input.",
|
|
844
844
|
"guidance": [
|
|
845
845
|
"APPENDS to whatever the field already holds. Call clear_element first to replace the value rather than adding to it.",
|
|
846
|
-
"Read the result back with get_element_property on \"value\": a field's current contents are a property, not text.",
|
|
846
|
+
"Read the result back with get_element_property on \"value\": a field's current contents are a property, not text. On Safari for iOS, where property reads answer 405, use get_element_attribute with name value instead.",
|
|
847
847
|
"A \\n at the end submits the form on a desktop browser and on Chrome for Android, and is quicker than finding the submit button. IT DOES NOT SUBMIT ON SAFARI FOR iOS \u2014 the text lands in the field and the page stays where it is, whether the newline is sent with the text or on its own. There, click the form's submit button with click_element \u2014 scroll_to_element first if it sits below the fold.",
|
|
848
848
|
"The element must be editable; typing into anything else answers \"element not interactable\".",
|
|
849
849
|
"A site's own autocomplete or dropdown may swallow the keystrokes and require a click on a suggestion instead."
|
|
@@ -895,8 +895,9 @@
|
|
|
895
895
|
"entity": "browser_session",
|
|
896
896
|
"intent": "Empty an input \u2014 use this before typing, since send_keys adds to what is already there.",
|
|
897
897
|
"guidance": [
|
|
898
|
+
"WORKS ON EVERY BROWSER: desktop Chrome, Chrome for Android and Safari on iPhone all answer 200 and leave the field empty; typing afterwards starts from nothing.",
|
|
898
899
|
"Takes no parameters of its own.",
|
|
899
|
-
"Confirm with get_element_property on \"value\", which reads empty afterwards.",
|
|
900
|
+
"Confirm with get_element_property on \"value\", which reads empty afterwards \u2014 on Safari for iOS, where property reads answer 405, use get_element_attribute with name value instead. Measured empty after clearing on desktop Chrome, Chrome for Android and Safari on iPhone.",
|
|
900
901
|
"Clearing also fires the page's own change handlers, so a form may revalidate and show an error about the now-empty field.",
|
|
901
902
|
"The element must be editable; anything else answers \"invalid element state\"."
|
|
902
903
|
],
|
|
@@ -981,6 +982,7 @@
|
|
|
981
982
|
"entity": "browser_session",
|
|
982
983
|
"intent": "Read a live DOM property of an element \u2014 use this for what a field currently holds, or whether a box is checked right now.",
|
|
983
984
|
"guidance": [
|
|
985
|
+
"NOT ON SAFARI FOR iOS: the driver there answers 405 \"unknown method\" to every property read. On an iPhone or iPad read get_element_attribute with name value instead, which returns what the field holds right now; on desktop browsers and Chrome for Android this is the live view and the attribute is the markup.",
|
|
984
986
|
"THIS IS THE ONE THAT READS A FIELD'S CURRENT VALUE. The \"value\" attribute is the markup's initial value rather than what is in the box now, and an input carries no text.",
|
|
985
987
|
"Useful names: value, checked, selected, disabled, innerText, href.",
|
|
986
988
|
"A property the element does not have comes back null, not an error."
|
|
@@ -1030,7 +1032,7 @@
|
|
|
1030
1032
|
"entity": "browser_session",
|
|
1031
1033
|
"intent": "Read an HTML attribute of an element \u2014 use this for ids, classes, data- attributes and link targets as the markup declares them.",
|
|
1032
1034
|
"guidance": [
|
|
1033
|
-
"
|
|
1035
|
+
"On desktop browsers and Chrome for Android this is the attribute as written in the HTML, which is NOT what a field currently holds: for that, use get_element_property on \"value\". On Safari for iOS it is the other way round \u2014 get_element_property answers 405 there, and this call with name value returns what the field holds right now.",
|
|
1034
1036
|
"An attribute the element does not carry comes back null rather than an error, so null means absent, not empty.",
|
|
1035
1037
|
"An attribute a script has changed may still read as the original markup; the property is the live view."
|
|
1036
1038
|
],
|