SeleniumBasic icon indicating copy to clipboard operation
SeleniumBasic copied to clipboard

ExecuteScript querySelectorAll in selenium basic implementation returns empty list

Open quentinharris opened this issue 6 years ago • 0 comments

In Python with selenium I can run the following to return a list of matched elements text

from selenium import webdriver

d = webdriver.Chrome()
d.get("https://www.imobiliare.ro/inchirieri-apartamente/sibiu/hipodrom-4/apartament-de-inchiriat-3-camere-X84T100B2?lista=2361394")
items = d.execute_script("return [...document.querySelectorAll('div.titlu')].map(item => item.innerText)")
print(items))
d.quit()

This returns

[' Ap. de lux 3 camere de inchiriat mobilat si ultrafinisat 73+7mp utili Sibiu, zona Hipodrom 4 - HartăVezi hartă Actualizat azi ', 'Ap. de lux 3 camere de inchiriat mobilat si ultrafinisat 73+7mp utili\nSibiu, zona Hipodrom 4 - Vezi hartă Actualizat azi']

I was hoping I could re-write this with selenium basic. I get a list object returned but it is empty.

Option Explicit
Public Sub GetItems()
    Dim d As WebDriver, elements As List, element As Object
    Set d = New ChromeDriver
    Const URL = "https://www.imobiliare.ro/inchirieri-apartamente/sibiu/hipodrom-4/apartament-de-inchiriat-3-camere-X84T100B2?lista=2361394"
    With d
        .get URL
        
        Set elements = .ExecuteScript("return [...document.querySelectorAll('div.titlu')].map(item => item.innerText)")
       
        Stop
        .Quit
    End With
End Sub

Is this sort of operation supported? I know I can use FindElementsByCSS to return WebElements but am interested in what methods I can bring across from Python.

quentinharris avatar Nov 25 '18 06:11 quentinharris