Selecting an option in Javascript when the .selectedIndex property is unpredictable

My current challenge involves using a mix of applescript and javascript to choose an option from a dropdown select menu without knowing the .selectedIndex in advance.

tell application "Safari"
activate
tell document 1
    do JavaScript "document.getElementsByName('dropdown')[0].selectedIndex=2"
end tell
end tell

In this case, the code would select the 3rd option (jelly) from a dropdown menu structured like this:

<select name="dropdown">
<option value="shoe">shoe</option>
<option value="man">man</option>
<option value="jelly">jelly</option>
</select>

The issue arises when the dropdown options change constantly. For example, it could be updated to look like this on another day:

<select name="dropdown">
<option value="billy">billy</option>
<option value="shoe">shoe</option>
<option value="man">man</option>
<option value="jelly">jelly</option>
</select>

In this scenario, the 'man' option would now be selected instead.

Answer №1

Answer:

define valuex as "jam"
tell application "Chrome"
activate
tell document 1
    execute JavaScript "document.getElementsByName('dropdown')[0].value='" & valuex & "';"
end tell
end tell

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Error in React UseTable: Attempting to read properties of an undefined object (specifically trying to use a forEach loop)

https://i.stack.imgur.com/ZSLSN.pngHaving an issue here that I need some quick help with! Whenever I attempt to render data into a React table, I encounter the error mentioned above. The data is fetched from an API using Axios. Let's take a look at t ...

Make sure to leave a space after a period in a sentence, but do

My question is about fixing spacing issues in text, specifically sentences that lack spaces after a dot. For example: See also vadding.Constructions on this term abound. I also have URLs within the text, such as: See also vadding.Constructions on th ...

Looking to implement v-model with a group of checkboxes in a Custom Component in Vue3?

The code snippet below demonstrates the power of v-model. By checking and unchecking checkboxes, the checkedNames array will automatically add or remove names. No need to manually manipulate the array with push, slice, or filter operations. const { ref ...

Ways to maintain a connection in Node.js during page reloads

My website features a real-time updated list of all online users thanks to node.js (specifically now.js) The issue arises when a user navigates the site, causing a momentary disconnect as the new page loads. This temporary disappearance from the list for ...

Load the iframe element only when the specified class becomes visible within the container div, without relying on jQuery

I am facing a unique challenge where the performance of my page is significantly impacted by loading multiple iframes. These iframes are contained within popup modals, and I would like to delay their loading until a user clicks on the modal. When the mod ...

Breaking circular dependencies in JavaScript is a common challenge that developers face when

Having encountered a circular dependency issue between certain JS files, I am seeking steps to resolve it. Q1: Is repositioning the require function an appropriate solution? One suggested approach to resolve this issue is to move the require() statement ...

Using a toolbar to insert a hyperlink for hypertext communication

My journey with Javascript and React began this week, so I'm still getting the hang of things, especially in the front end domain. In my project, there's a link button within a toolbar. The idea is to click on it, have a text box pop up where yo ...

Generating resized images by manipulating the corners

Is there a way to resize an image inside a div that's already being resized using jQuery? Check out the code on this JSFiddle. $(function(){ //Define your element to resize $('#resizable').resizable({ handles: { ...

NodeJS's JSONStream package delivers data in a continuous, uninterrupted string format

I am currently working on parsing a large JSON file containing 300k lines in Node using JSONStream. According to the documentation, I expected that by using the code below, only the first 10 rows of the document would be displayed on the console. However, ...

Accessing JavaScript results in PHP

Hello everyone! I am working on creating a dropdown menu for selecting time using JavaScript to get the computer's current time. My goal is to have an output that automatically selects the option in the dropdown if it matches the computer's time. ...

Steering clear of repeating evaluations and dynamically unloading objects requested with `require` is important

I'm currently delving into the intricacies of the nodejs module system. Among the resources I've come across so far are: https://nodejs.org/api/modules.html These readings have shed light on a few aspects, but I still have some lingering ques ...

Adjusting transparency of uploaded 3D model in Three.js

I've successfully loaded a 3D object model into a three.js scene using the following code: var skull; var loader2 = new THREE.ObjectLoader(); loader2.load( 'skull.json', function(object) { skull = object; scene.ad ...

Searching for data in Express JS with MongoDB using the $or operator is not possible

I am currently developing an API for managing my invoice data. Within this data, there are boolean values that determine the status of the invoices. For example, some invoices are marked as 'payment received', and I need to search for those speci ...

Using AJAX to send data to the server in jQuery

Currently, I have an AJAX request implemented on my webpage. I am exploring methods to detect when an AJAX call is initiated within the page using jQuery or JavaScript. Is there a way to identify or trigger a function upon the initiation of an AJAX reques ...

Preventing Event Bubbling in Polymer 1.5 for iOS When Using iron-pages

Our single-page app utilizes iron pages and express-router for navigation. While it functions flawlessly on browsers and Android devices, we've encountered a bug when using iOS. The issue arises when switching pages by clicking a button. If the button ...

The function buf.writeBigUInt64BE is not recognized as a valid function and returns an undefined error

I'm attempting to implement the code below on my React Native iOS device: import { Buffer } from "buffer"; const buf = Buffer.alloc(8) buf.writeBigUInt64BE(BigInt(123), 0) const value = buf.readBigUInt64BE(0) console.log(value) However, I&a ...

Jssor's dynamic slider brings a touch of sophistication to preview upcoming images

Incorporating the jssor nearby slider to create a nearly fullscreen display. The goal is to set the opacity of upcoming images to 0.25 when they are not in the main viewport, giving the edges of the upcoming and previous slides a slight transparency. < ...

"Latest version of ThreeJS (r160) utilizes ShaderMaterial to render textures

I've been attempting to incorporate a texture into this shader, but it's displaying as black. I suspect there's a small detail I'm overlooking, despite my search yielding no relevant information for ThreeJS version r160. The shader code ...

Using `appendChild` in combination with `createElement`

Is there a difference between these two approaches: var div = document.createElement('div');//output -> [object HTMLDivElement] document.getElementById('container').appendChild(div); and: var div = '<div></div>&a ...

Sending data through URL using Node JS

After diving into programming with Node JS recently, I have been amazed by how it serves as a great alternative to PHP. In my previous experience with PHP, I used to send get requests with data in the URL. For example: I am curious about how to achieve s ...