स्थापना क्रोम DevTools (सेलेनियम 4) का उपयोग कर दूरस्थ WebDriver में अजगर

0

सवाल

मैं कोशिश कर रहा हूँ करने के लिए सेट का उपयोग करें क्रोम DevTools का उपयोग कर सेलेनियम 4 और अजगर. मैं सक्षम किया गया है करने के लिए इसे चलाने के लिए स्थानीय रूप से (बिना किसी की async सामान), लेकिन जब मैं का उपयोग करने का प्रयास webdriver.दूरदराज के कार्यान्वयन, यह दुर्घटनाओं ।

यहाँ है एक उदाहरण से सेलेनियम डॉक्स: https://www.selenium.dev/de/documentation/support_packages/chrome_devtools/

नीचे है कि मैं कैसे की कोशिश की, इसे चलाने के लिए.

import asyncio

from selenium import webdriver
import selenium.webdriver.common.devtools.v96 as devtools

async def geo_location_test():
    try:
        chrome_options = webdriver.ChromeOptions()
        driver = webdriver.Remote(
            command_executor='http://D5365900:4444/wd/hub',
            options=chrome_options
        )

        async with driver.bidi_connection() as session:
            cdp_session = session.session
            await cdp_session.execute(devtools.emulation.set_geolocation_override(latitude=41.8781,
                                                                                  longitude=-87.6298,
                                                                                  accuracy=100))
        driver.get("https://my-location.org/")
    finally:
        driver.quit()


async def main():
    await geo_location_test()

if __name__ == "__main__":
    asyncio.run(main())

यह चलाता है अप करने के लिए लाइन async with driver.bidi_connection() as session: (सत्र की स्थापना की है, और क्रोम ब्राउज़र को खोलता है). लेकिन यह दुर्घटनाओं के साथ निम्न ट्रेस.

Traceback (most recent call last):
  File "C:\Users\y04082\eclipse-workspace\WWI-Testautomation\TestScripts\Josh\async_sel_4.py", line 54, in <module>
    asyncio.run(main())
  File "C:\Program Files\Python310\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Program Files\Python310\lib\asyncio\base_events.py", line 641, in run_until_complete
    return future.result()
  File "C:\Users\y04082\eclipse-workspace\WWI-Testautomation\TestScripts\Josh\async_sel_4.py", line 51, in main
    await geo_location_test()
  File "C:\Users\y04082\eclipse-workspace\WWI-Testautomation\TestScripts\Josh\async_sel_4.py", line 40, in geo_location_test
    async with driver.bidi_connection() as session:
  File "C:\Program Files\Python310\lib\contextlib.py", line 199, in __aenter__
    return await anext(self.gen)
  File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1576, in bidi_connection
    async with cdp.open_cdp(ws_url) as conn:
  File "C:\Program Files\Python310\lib\contextlib.py", line 199, in __aenter__
    return await anext(self.gen)
  File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\common\bidi\cdp.py", line 457, in open_cdp
    async with trio.open_nursery() as nursery:
  File "C:\Program Files\Python310\lib\site-packages\trio\_core\_run.py", line 796, in __aenter__
    self._scope.__enter__()
  File "C:\Program Files\Python310\lib\site-packages\trio\_core\_ki.py", line 159, in wrapper
    return fn(*args, **kwargs)
  File "C:\Program Files\Python310\lib\site-packages\trio\_core\_run.py", line 449, in __enter__
    task = _core.current_task()
  File "C:\Program Files\Python310\lib\site-packages\trio\_core\_run.py", line 2285, in current_task
    raise RuntimeError("must be called from async context") from None
RuntimeError: must be called from async context

के रूप में आप देख सकते हैं, मैं का उपयोग कर रहा हूँ अजगर 3.10. मैं भी उन्नत सेलेनियम बाइंडिंग के लिए 4.1.0 और चल रहा हूँ एक सेलेनियम 4.0.0 Hub/नोड विन्यास को स्वचालित करने के लिए क्रोम 96.

किसी भी विचार, समस्या क्या है यहाँ? मैं कर रहा हूँ से निपटने अतुल्यकालिक coroutines गलत तरीके से?

किसी भी मदद की बहुत सराहना की है!

अद्यतन कोशिश कर के बाद चलाने के लिए यह तिकड़ी के साथ (के रूप में सुझाव दिया हेनरी एस्टन-मार्टिन की टिप्पणी), मैं निम्नलिखित त्रुटि मिलती है.

Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\site-packages\trio\_highlevel_open_tcp_stream.py", line 332, in attempt_connect
    await sock.connect(sockaddr)
  File "C:\Program Files\Python310\lib\site-packages\trio\_socket.py", line 682, in connect
    raise OSError(err, "Error in connect: " + os.strerror(err))
OSError: [Errno 10049] Error in connect: Unknown error

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\y04082\eclipse-workspace\WWI-Testautomation\TestScripts\Josh\async_sel_4.py", line 58, in <module>
    trio.run(main)
  File "C:\Program Files\Python310\lib\site-packages\trio\_core\_run.py", line 1932, in run
    raise runner.main_task_outcome.error
  File "C:\Users\y04082\eclipse-workspace\WWI-Testautomation\TestScripts\Josh\async_sel_4.py", line 55, in main
    await geo_location_test()
  File "C:\Users\y04082\eclipse-workspace\WWI-Testautomation\TestScripts\Josh\async_sel_4.py", line 44, in geo_location_test
    async with driver.bidi_connection() as session:
  File "C:\Program Files\Python310\lib\contextlib.py", line 199, in __aenter__
    return await anext(self.gen)
  File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1576, in bidi_connection
    async with cdp.open_cdp(ws_url) as conn:
  File "C:\Program Files\Python310\lib\contextlib.py", line 199, in __aenter__
    return await anext(self.gen)
  File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\common\bidi\cdp.py", line 458, in open_cdp
    conn = await connect_cdp(nursery, url)
  File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\common\bidi\cdp.py", line 479, in connect_cdp
    ws = await connect_websocket_url(nursery, url,
  File "C:\Program Files\Python310\lib\site-packages\trio_websocket\_impl.py", line 262, in connect_websocket_url
    return await connect_websocket(nursery, host, port, resource,
  File "C:\Program Files\Python310\lib\site-packages\trio_websocket\_impl.py", line 171, in connect_websocket
    stream = await trio.open_tcp_stream(host, port)
  File "C:\Program Files\Python310\lib\site-packages\trio\_highlevel_open_tcp_stream.py", line 367, in open_tcp_stream
    raise OSError(msg) from trio.MultiError(oserrors)
OSError: all attempts to connect to 0.0.0.0:4444 failed
1

सबसे अच्छा जवाब

0

ऐसा लगता है कि सेलेनियम का उपयोग नहीं करता है पायथन builtin async ढांचे का उपयोग करता है लेकिन एक पैकेज बुलाया तीनों के रूप में अच्छी तरह से. आप में सक्षम होना चाहिए ठीक करने के लिए इस समस्या को बदलने के द्वारा इस कोड से:

if __name__ == "__main__":
    asyncio.run(main())

करने के लिए:

if __name__ == "__main__":
    import trio
    trio.run(main)
2021-12-10 10:43:06

सुझाव के लिए धन्यवाद. मैं वास्तव में था कि पहले की कोशिश की. मैं अद्यतन मेरी पोस्ट को दिखाने के लिए (अलग-अलग) त्रुटि मैं, जब मैं करने की कोशिश का उपयोग करें ।
josh42

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में