Lua скрипт - неправильный селектор CSS? "# tab-nav-main span: содержит (desc)" - PullRequest
0 голосов
/ 14 марта 2019

Я использую Scrapy-splash, но этот вопрос касается Lua сценария. Мне нужно подождать, пока один элемент не станет видимым. Проблема в том, что на этот элемент можно перемещаться только по его тексту.

Эквивалент XPATH: //*[@id="tab-nav-main"]//span[text()="desc"]')

Я пытался:

#tab-nav-main span:contains(desc)

, который работает в Chrome, но не в lua

Что бы вы сделали?

function main(splash, args)
            splash:set_user_agent(args.ua)
            assert(splash:go(splash.args.url))

            local i=0
            local maxwait=5

            while not splash:select("#tab-nav-main span:contains(description)") do
                if i==maxwait then
                    break     --times out at maxwait secs
                end
                i=i+1
                splash:wait(1)      --each loop has duration 1sec
            end
            return {
                html = splash:html(),
                }
        end

ERROR

2019-03-14 17:07:05 [scrapy_splash.middleware] WARNING: Bad request to Splash: {'description': 'Error happened while executing Lua script', 'error': 400, 'info': {'splash_method': 'select', 'line_number': 9, 'error': 'cannot select the specified element {\'js_error\': \'Error: SyntaxError: DOM Exception 12\', \'js_error_type\': \'SyntaxError\', \'js_error_message\': \'SyntaxError: DOM Exception 12\', \'type\': \'JS_ERROR\', \'message\': "JS error: \'Error: SyntaxError: DOM Exception 12\'"}', 'source': '[string "..."]', 'message': '[string "..."]:9: cannot select the specified element {\'js_error\': \'Error: SyntaxError: DOM Exception 12\', \'js_error_type\': \'SyntaxError\', \'js_error_message\': \'SyntaxError: DOM Exception 12\', \'type\': \'JS_ERROR\', \'message\': "JS error: \'Error: SyntaxError: DOM Exception 12\'"}', 'type': 'SPLASH_LUA_ERROR'}, 'type': 'ScriptError'}
...