WebExecute

WebExecute[cmd]

executes the command cmd in a web browser.

WebExecute[{cmd1,cmd2,}]

executes a list of commands in sequence.

WebExecute[session,cmds]

executes cmds in the specified web session.

Details

  • WebExecute executes commands in a web browser through a web driver.
  • If a web session has been started with StartWebSession, WebExecute[cmds] executes commands in that session, as specified by $CurrentWebSession.
  • If no web session has been started, WebExecute[cmds] starts a web session, executes cmds, then ends the web session.
  • WebExecute[cmd] returns either the output of the command or a Success or Failure object.
  • WebExecute[{cmd1,cmd2,}] returns a list of the results for the cmdi.
  • Commands in WebExecute are typically specified in the following forms:
  • "cmd"a command without arguments
    "cmd" arga command with one argument
    "cmd"{arg1,arg2,}a command with multiple arguments
  • WebExecute supports the following commands related to complete webpages:
  • "OpenPage"urlopen the specified webpage
    "PageURL"get the URL of the current webpage
    "PageTitle"get the title of the current webpage
    "PageBack"go to the previous webpage
    "PageForward"go to the next webpage
    "RefreshPage"refresh the current webpage
    "PageHyperlinks"get the list of hyperlinks on the current webpage
    "CapturePage"capture an image of the current webpage
  • WebExecute supports the following commands related to elements of webpages:
  • "LocateElements"elemgive the list of elements on a webpage matching elem
    "ClickElement"elemclick an element on a webpage (e.g. a hyperlink)
    "HoverElement"elemhover over an element on a webpage
    "TypeElement"{elem,"text"}type text into an element on a webpage (e.g. an input field)
    "SubmitElement"elemsubmit a form using the specified element (e.g. a button)
    "ElementSelected"elemwhether an element is selected
    "ElementEnabled"elemwhether an element is enabled
    "ElementTag"elemthe HTML tag for the element
    "ElementText"elemthe text, if any, associated with an element
    "ElementAttribute"{elem,"attr"}an attribute of an element
    "HideElement"elemmake an element invisible
    "ShowElement"elemmake an element visible
  • Elements of webpages can be specified in any of the following forms:
  • WebElementObject[...]a previously located element (e.g. from "LocateElements")
    "HyperlinkText" "text"hyperlinks with the specified text
    "PartialHyperlinkText""form"hyperlinks with text containing "form"
    "Tag""tag"elements with the specified HTML tag
    "XPath"pathelements on the specified XPath
    "CSSSelector"patternelements matching the specified CSS selector pattern
  • WebExecute supports the following commands related to windows:
  • "BrowserWindows"get the WebWindowObject list
    "SetBrowserWindow"windowmake WebWindowObject window active
    "WindowSize"get the current window size as {width,height}
    "SetWindowSize"{w,h}set the current window size
    "WindowPosition"get the position of a window
    "SetWindowPosition"{window,{x, y}}set the screen position of window
    "WindowMaximize"windowmaximize window
    "WindowMinimize"windowminimize window
    "WindowFullscreen"make the current window fullscreen
  • WebExecute allows the following general commands:
  • "JavascriptExecute""code"execute the specified string of JavaScript code
  • The following options can be given:
  • Visible Truewhether to display the browser window or not
  • WebExecute uses the WebDriver protocol defined by W3C to communicate with the browser.

Examples

open allclose all

Basic Examples  (6)

Start a web session:

Open a webpage in the current session:

Close the session:

Start a web session:

Open a webpage:

Get the URL of the page open in the browser:

Go back to the previous page in the browser tabs history:

Go one page forward in the browser tabs history:

Refresh the page:

Get the title of the page open in the browser:

Get hyperlinks on the page open in the browser:

Close the current web session:

Run multiple commands in a single command:

Start a web session:

Open a webpage in the current session:

Locate header elements on the page using "LocateElements":

Find the element text of the HTML headers found previously:

Find paragraphs of text on a webpage with "XPath":

Close the session:

Start a web session:

Open a webpage in the current session:

Locate all the image elements on the page using "LocateElements":

Extract the alt text of each tag using "ElementAttribute":

Close the session:

Start a web session:

Open a webpage in the current session:

Find the search input box using "LocateElements" with "Tag":

Use "TypeElement" to type into the search box found previously:

Submit the form with the query:

Check the page URL to see that the query was submitted:

Close the session:

Scope  (3)

Start a web session:

Open a webpage:

Get all the elements for the <a> (hyperlink) tag:

Click a randomly chosen hyperlink:

Get the title of the page:

Close the session:

Start a web session:

Open a webpage:

Get all the elements for the <p> (paragraph) tag:

Hide all the paragraphs of text on the page:

All text paragraphs are now hidden:

Show the text paragraphs again:

The text has reappeared on the page:

Close the session:

Start a web session:

Use WebExecute to open to a new page:

Use WebExecute to open a new browser tab:

Use WebExecute to get the open windows:

Use WebExecute to get the title of the first page:

Use WebExecute to switch to the second window:

Use WebExecute to get the title of the second page:

Delete the session with DeleteObject:

Options  (1)

Visible  (1)

Use VisibleFalse to run the browser in "headless" mode, where the browser window does not actually become visible:

Wolfram Research (2019), WebExecute, Wolfram Language function, https://reference.wolfram.com/language/ref/WebExecute.html.

Text

Wolfram Research (2019), WebExecute, Wolfram Language function, https://reference.wolfram.com/language/ref/WebExecute.html.

CMS

Wolfram Language. 2019. "WebExecute." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/WebExecute.html.

APA

Wolfram Language. (2019). WebExecute. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/WebExecute.html

BibTeX

@misc{reference.wolfram_2024_webexecute, author="Wolfram Research", title="{WebExecute}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/WebExecute.html}", note=[Accessed: 24-April-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_webexecute, organization={Wolfram Research}, title={WebExecute}, year={2019}, url={https://reference.wolfram.com/language/ref/WebExecute.html}, note=[Accessed: 24-April-2024 ]}