QIN2DIM / epic-awesome-gamer

🍷 Gracefully claim weekly free games and monthly content from Epic Store.
https://echosec.notion.site/Epic-7c74f1e29117420dbac5551e4b031f82?pvs=4
GNU General Public License v3.0
886 stars 364 forks source link

报错。运行成功率有点低? #224

Closed decike closed 10 months ago

decike commented 10 months ago

运行环境为GitHub Action。早上运行了四次,在没动任何配置的第四次运行成功了一次,前三次报的错误都不一样。 由于后面成功运行了一次,所以把前面的日志文件顶掉了,以下日志都是在action里面手动复制的“启动项目”部分 第一次为定时北京时间上午6:27运行,日志如下


Run if [ -d "user_data_dir" ];then cp -rfp user_data_dir epic/; fi
  if [ -d "user_data_dir" ];then cp -rfp user_data_dir epic/; fi
  echo "{}" > epic/src/config.json
  cd epic/src/ && python3 claim.py
  shell: /usr/bin/bash -e {0}
  env:
    EPIC_EMAIL: ***
    EPIC_PASSWORD: ***
    FAKE_HASH: Automated deployment @ $(date '+%Y-%m-%d %H:%M:%S') Asia/Shanghai
    pythonLocation: /opt/hostedtoolcache/Python/3.10.13/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib
2023-10-27 06:45:15 | INFO - run - {'image': '20231026', 'role': 'EpicPlayer', 'headless': True, 'self_supervised': True}
2023-10-27 06:45:24 | DEBUG - Put task - {'title': 'Tandem: A Tale of Shadows', 'url': 'https://store.epicgames.com/en-US/p/tandem-a-tale-of-shadows-c3f55e'}
2023-10-27 06:45:24 | DEBUG - Put task - {'title': 'The Evil Within 2', 'url': 'https://store.epicgames.com/en-US/p/the-evil-within-2'}

Installing models/objects.yaml:   0%|          | 0.00/2.91k [00:00<?, ?B/s]
Installing models/objects.yaml: 100%|██████████| 2.91k/2.91k [00:00<00:00, 4.12MB/s]

Installing models/visual_CLIP_RN50.openai.onnx:   0%|          | 0.00/146M [00:00<?, ?B/s]
Installing models/visual_CLIP_RN50.openai.onnx:   5%|▍         | 6.84M/146M [00:00<00:02, 71.7MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  10%|█         | 14.9M/146M [00:00<00:01, 79.3MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  18%|█▊        | 26.6M/146M [00:00<00:01, 97.3MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  25%|██▌       | 37.0M/146M [00:00<00:01, 102MB/s] 
Installing models/visual_CLIP_RN50.openai.onnx:  33%|███▎      | 48.0M/146M [00:00<00:00, 106MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  40%|███▉      | 58.1M/146M [00:00<00:00, 99.8MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  46%|████▋     | 67.7M/146M [00:00<00:00, 95.0MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  56%|█████▌    | 81.1M/146M [00:00<00:00, 108MB/s] 
Installing models/visual_CLIP_RN50.openai.onnx:  65%|██████▍   | 94.7M/146M [00:00<00:00, 118MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  75%|███████▍  | 109M/146M [00:01<00:00, 128MB/s] 
Installing models/visual_CLIP_RN50.openai.onnx:  85%|████████▍ | 124M/146M [00:01<00:00, 135MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  94%|█████████▍| 137M/146M [00:01<00:00, 137MB/s]
Installing models/visual_CLIP_RN50.openai.onnx: 100%|██████████| 146M/146M [00:01<00:00, 116MB/s]

Installing models/textual_CLIP_RN50.openai.onnx:   0%|          | 0.00/244M [00:00<?, ?B/s]
Installing models/textual_CLIP_RN50.openai.onnx:   5%|▍         | 11.0M/244M [00:00<00:02, 115MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:   9%|▉         | 22.0M/244M [00:00<00:02, 112MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  14%|█▍        | 33.7M/244M [00:00<00:01, 117MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  19%|█▉        | 45.9M/244M [00:00<00:01, 121MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  24%|██▍       | 58.3M/244M [00:00<00:01, 124MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  29%|██▉       | 70.2M/244M [00:00<00:01, 122MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  34%|███▎      | 81.8M/244M [00:00<00:01, 120MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  38%|███▊      | 93.6M/244M [00:00<00:01, 121MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  44%|████▎     | 106M/244M [00:00<00:01, 124MB/s] 
Installing models/textual_CLIP_RN50.openai.onnx:  48%|████▊     | 118M/244M [00:01<00:01, 117MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  53%|█████▎    | 130M/244M [00:01<00:01, 119MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  58%|█████▊    | 141M/244M [00:01<00:00, 118MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  63%|██████▎   | 153M/244M [00:01<00:00, 120MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  68%|██████▊   | 164M/244M [00:01<00:00, 119MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  72%|███████▏  | 176M/244M [00:01<00:00, 119MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  77%|███████▋  | 187M/244M [00:01<00:00, 117MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  81%|████████▏ | 198M/244M [00:01<00:00, 117MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  86%|████████▋ | 211M/244M [00:01<00:00, 120MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  91%|█████████▏| 223M/244M [00:01<00:00, 122MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  96%|█████████▌| 234M/244M [00:02<00:00, 98.4MB/s]
Installing models/textual_CLIP_RN50.openai.onnx: 100%|██████████| 244M/244M [00:02<00:00, 116MB/s] 
2023-10-27 06:45:29 | INFO - claim_weekly_games - {'action': 'go to store', 'url': 'https://store.epicgames.com/en-US/p/tandem-a-tale-of-shadows-c3f55e'}
2023-10-27 06:45:37 | INFO - claim_weekly_games - {'action': 'go to store', 'url': 'https://store.epicgames.com/en-US/p/the-evil-within-2'}
2023-10-27 06:45:49 | INFO - claim_weekly_games - {'action': 'move to webPurchaseContainer iframe'}
2023-10-27 06:45:52 | INFO - claim_weekly_games - {'action': 'click payment button'}

Installing models/nested_largest_horse2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_horse2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 35.2MB/s]

Installing models/nested_largest_rabbit2310.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_rabbit2310.onnx: 100%|██████████| 296k/296k [00:00<00:00, 41.5MB/s]

Installing models/nested_largest_hedgehog2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_hedgehog2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 24.3MB/s]

Installing models/nested_largest_raccoon2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_raccoon2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 38.2MB/s]

Installing models/nested_largest_elephant2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_elephant2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 33.7MB/s]

Installing models/nested_largest_turtle2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_turtle2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 39.7MB/s]
2023-10-27 06:46:07 | DEBUG - unsupervised - {'type': 'binary', 'candidate_labels': ['This is a photo of the please click on the smallest animal.', 'This is a photo that has nothing to do with please click on the smallest animal.'], 'prompt': 'Please click on the smallest animаl.', 'timit': '1.883s'}
2023-10-27 06:46:32 | DEBUG - unsupervised - {'type': 'binary', 'candidate_labels': ['This is a photo of the please click on the smallest animal.', 'This is a photo that has nothing to do with please click on the smallest animal.'], 'prompt': 'Please click on the smallest anіmal.', 'timit': '2.542s'}
2023-10-27 06:47:14 | DEBUG - unsupervised - {'type': 'binary', 'candidate_labels': ['This is a photo of the please click on the smallest animal.', 'This is a photo that has nothing to do with please click on the smallest animal.'], 'prompt': 'Please click on the smallest аnіmаl.', 'timit': '3.260s'}
Error: The action has timed out.

第二次是手动运行日志如下

Run if [ -d "user_data_dir" ];then cp -rfp user_data_dir epic/; fi
  if [ -d "user_data_dir" ];then cp -rfp user_data_dir epic/; fi
  echo "{}" > epic/src/config.json
  cd epic/src/ && python3 claim.py
  shell: /usr/bin/bash -e {0}
  env:
    EPIC_EMAIL: ***
    EPIC_PASSWORD: ***
    FAKE_HASH: Automated deployment @ $(date '+%Y-%m-%d %H:%M:%S') Asia/Shanghai
    pythonLocation: /opt/hostedtoolcache/Python/3.10.13/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib
2023-10-27 08:30:38 | INFO - run - {'image': '20231026', 'role': 'EpicPlayer', 'headless': True, 'self_supervised': True}
2023-10-27 08:30:46 | DEBUG - Put task - {'title': 'Tandem: A Tale of Shadows', 'url': 'https://store.epicgames.com/en-US/p/tandem-a-tale-of-shadows-c3f55e'}
2023-10-27 08:30:46 | DEBUG - Put task - {'title': 'The Evil Within 2', 'url': 'https://store.epicgames.com/en-US/p/the-evil-within-2'}

Installing models/objects.yaml:   0%|          | 0.00/2.91k [00:00<?, ?B/s]
Installing models/objects.yaml: 100%|██████████| 2.91k/2.91k [00:00<00:00, 3.45MB/s]

Installing models/visual_CLIP_RN50.openai.onnx:   0%|          | 0.00/146M [00:00<?, ?B/s]
Installing models/visual_CLIP_RN50.openai.onnx:  11%|█         | 15.4M/146M [00:00<00:00, 162MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  25%|██▌       | 37.0M/146M [00:00<00:00, 200MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  40%|████      | 58.9M/146M [00:00<00:00, 213MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  55%|█████▌    | 81.1M/146M [00:00<00:00, 221MB/s]
Installing models/visual_CLIP_RN50.openai.onnx:  71%|███████▏  | 104M/146M [00:00<00:00, 228MB/s] 
Installing models/visual_CLIP_RN50.openai.onnx:  87%|████████▋ | 127M/146M [00:00<00:00, 232MB/s]
Installing models/visual_CLIP_RN50.openai.onnx: 100%|██████████| 146M/146M [00:00<00:00, 225MB/s]

Installing models/textual_CLIP_RN50.openai.onnx:   0%|          | 0.00/244M [00:00<?, ?B/s]
Installing models/textual_CLIP_RN50.openai.onnx:   7%|▋         | 16.7M/244M [00:00<00:01, 175MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  16%|█▋        | 40.1M/244M [00:00<00:00, 216MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  25%|██▌       | 61.8M/244M [00:00<00:00, 221MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  34%|███▍      | 83.0M/244M [00:00<00:00, 222MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  43%|████▎     | 104M/244M [00:00<00:00, 221MB/s] 
Installing models/textual_CLIP_RN50.openai.onnx:  51%|█████▏    | 125M/244M [00:00<00:00, 220MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  60%|██████    | 146M/244M [00:00<00:00, 221MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  69%|██████▉   | 168M/244M [00:00<00:00, 221MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  78%|███████▊  | 189M/244M [00:00<00:00, 220MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  86%|████████▌ | 210M/244M [00:01<00:00, 219MB/s]
Installing models/textual_CLIP_RN50.openai.onnx:  95%|█████████▍| 231M/244M [00:01<00:00, 215MB/s]
Installing models/textual_CLIP_RN50.openai.onnx: 100%|██████████| 244M/244M [00:01<00:00, 218MB/s]
2023-10-27 08:30:49 | INFO - claim_weekly_games - {'action': 'go to store', 'url': 'https://store.epicgames.com/en-US/p/tandem-a-tale-of-shadows-c3f55e'}
2023-10-27 08:30:54 | INFO - claim_weekly_games - {'action': 'go to store', 'url': 'https://store.epicgames.com/en-US/p/the-evil-within-2'}
2023-10-27 08:31:03 | INFO - claim_weekly_games - {'action': 'move to webPurchaseContainer iframe'}
2023-10-27 08:31:05 | INFO - claim_weekly_games - {'action': 'click payment button'}
2023-10-27 08:31:12 | DEBUG - unsupervised - {'type': 'binary', 'candidate_labels': ['This is a photo of the please click on the smallest animal.', 'This is a photo that has nothing to do with please click on the smallest animal.'], 'prompt': 'Please click on the smallest animаl.', 'timit': '1.081s'}

Installing models/nested_largest_horse2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_horse2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 17.4MB/s]

Installing models/nested_largest_rabbit2310.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_rabbit2310.onnx: 100%|██████████| 296k/296k [00:00<00:00, 16.9MB/s]

Installing models/nested_largest_hedgehog2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_hedgehog2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 16.0MB/s]

Installing models/nested_largest_raccoon2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_raccoon2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 18.3MB/s]

Installing models/nested_largest_elephant2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_elephant2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 18.7MB/s]

Installing models/nested_largest_turtle2309.onnx:   0%|          | 0.00/296k [00:00<?, ?B/s]
Installing models/nested_largest_turtle2309.onnx: 100%|██████████| 296k/296k [00:00<00:00, 16.0MB/s]
2023-10-27 08:32:02 | ERROR - An error has been caught in function 'run', process 'MainProcess' (3686), thread 'MainThread' ([140251444063296](tel:140251444063296)): - {}
Traceback (most recent call last):
  File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 159, in <module>
    asyncio.run(run())
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/base_events.py", line 636, in run_until_complete
    self.run_forever()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/base_events.py", line 603, in run_forever
    self._run_once()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/base_events.py", line 1909, in _run_once
    handle._run()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
> File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 155, in run
    await agent.stash()
  File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 148, in stash
    await self.claim_epic_games(context)
  File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 120, in claim_epic_games
    await epic.claim_weekly_games(page, single_promotions)
  File "/home/runner/work/GetGames/GetGames/epic/src/epic_games/agent.py", line 272, in claim_weekly_games
    await self.handle.insert_challenge(self._solver, page, wpc, payment_btn, recur_url, is_uk)
  File "/home/runner/work/GetGames/GetGames/epic/src/epic_games/agent.py", line 107, in insert_challenge
    await payment_btn.click(delay=200)
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/async_api/_generated.py", line 15673, in click
    await self._impl_obj.click(
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_locator.py", line 159, in click
    return await self._frame.click(self._selector, strict=True, **params)
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_frame.py", line 483, in click
    await self._channel.send("click", locals_to_params(locals()))
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_connection.py", line 61, in send
    return await self._connection.wrap_api_call(
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_connection.py", line 490, in wrap_api_call
    return await cb()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_connection.py", line 99, in inner_send
    result = next(iter(done)).result()
playwright._impl._api_types.TimeoutError: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for frame_locator("xpath=//iframe[@class='']").locator("xpath=//div[@class='payment-order-confirm']")
  locator resolved to <div class="payment-order-confirm">…</div>
attempting click action
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #1
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #2
  waiting 20ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #3
  waiting 100ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #4
  waiting 100ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #5
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #6
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #7
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #8
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #9
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #10
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #11
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #12
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #13
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #14
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #15
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #16
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #17
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #18
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #19
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #20
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #21
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #22
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #23
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #24
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #25
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #26
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #27
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #28
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #29
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #30
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #31
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #32
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #33
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #34
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #35
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #36
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #37
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #38
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #39
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #40
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #41
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #42
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #43
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #44
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #45
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #46
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #47
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #48
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #49
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #50
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #51
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #52
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #53
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #54
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #55
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #56
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #57
  waiting 500ms
  waiting for element to be visible, enabled and stable
  element is visible, enabled and stable
  scrolling into view if needed
  done scrolling
  <div class="h_captcha_challenge" id="h_captcha_challe…>…</div> from <div id="talon_container_checkout_free_prod">…</div> subtree intercepts pointer events
retrying click action, attempt #58
  waiting 500ms
============================================================

第三次也是手动运行

Run if [ -d "user_data_dir" ];then cp -rfp user_data_dir epic/; fi
  if [ -d "user_data_dir" ];then cp -rfp user_data_dir epic/; fi
  echo "{}" > epic/src/config.json
  cd epic/src/ && python3 claim.py
  shell: /usr/bin/bash -e {0}
  env:
    EPIC_EMAIL: ***
    EPIC_PASSWORD: ***
    FAKE_HASH: Automated deployment @ $(date '+%Y-%m-%d %H:%M:%S') Asia/Shanghai
    pythonLocation: /opt/hostedtoolcache/Python/3.10.13/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib
2023-10-27 08:39:44 | INFO - run - {'image': '20231026', 'role': 'EpicPlayer', 'headless': True, 'self_supervised': True}
2023-10-27 08:40:16 | ERROR - An error has been caught in function 'run', process 'MainProcess' (3609), thread 'MainThread' ([140072171101056](tel:140072171101056)): - {}
Traceback (most recent call last):
  File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 159, in <module>
    asyncio.run(run())
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/base_events.py", line 636, in run_until_complete
    self.run_forever()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/base_events.py", line 603, in run_forever
    self._run_once()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/base_events.py", line 1909, in _run_once
    handle._run()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
> File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 155, in run
    await agent.stash()
  File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 146, in stash
    if not await self.prelude_with_context(context):
  File "/home/runner/work/GetGames/GetGames/epic/src/claim.py", line 71, in prelude_with_context
    await page.goto(url, wait_until="networkidle")
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/async_api/_generated.py", line 9251, in goto
    await self._impl_obj.goto(
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_page.py", line 473, in goto
    return await self._main_frame.goto(**locals_to_params(locals()))
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_frame.py", line 138, in goto
    await self._channel.send("goto", locals_to_params(locals()))
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_connection.py", line 61, in send
    return await self._connection.wrap_api_call(
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_connection.py", line 490, in wrap_api_call
    return await cb()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/playwright/_impl/_connection.py", line 99, in inner_send
    result = next(iter(done)).result()
playwright._impl._api_types.TimeoutError: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "https://www.epicgames.com/account/creator-programs", waiting until "networkidle"
============================================================

后面第四次运行也是手动运行,但是成功领取了周免游戏,应该能初步排除配置问题 这四次运行没有动过任何配置文件以及GitHub的设置。

QIN2DIM commented 10 months ago

运行环境为GitHub Action。早上运行了四次,在没动任何配置的第四次运行成功了一次,前三次报的错误都不一样。 由于后面成功运行了一次,所以把前面的日志文件顶掉了,以下日志都是在action里面手动复制的“启动项目”部分

太真实了- -因为这个时间点我正好在更新 hcaptcha-challenger,一直在持续推送新的版本,epic workflow 每次运行都会 git clone 主分支代码,所以正好赶上了几个bug。

第一个错误是内存泄漏(表象),已经处理了 第二和第三个我不确定,录像文件还留着吗, playwright所有的运行错误都是 Timeout,但具体是什么原因导致的预期异常确实是比较玄学的- -

decike commented 10 months ago

哈哈哈哈哈有点好笑,这么赶巧,不过证明你更新勤快。 录像文件是指action里面的那些绿色的框框吗,我不知道该怎么发给你,如果你能提供一些线索我会尽快提供录像文件,再次感谢

QIN2DIM commented 10 months ago

image 在仓库的这个目录里面

decike commented 10 months ago

里面文件好多,我应该整个文件夹打包压缩吗

decike commented 10 months ago

我不确定这里面是否包含账号等隐私信息啊,不敢乱发😣

QIN2DIM commented 10 months ago

不用,你自己看看是什么问题就行了,webm 是视频格式

decike commented 10 months ago

搜索了一下,并没有webm文件,先不管了,下周如果还有问题我再提issue吧

decike commented 10 months ago

找到webm了,你路径发歪了一点点,是下面哪个record,然后win10的资源管理器搜索功能是个摆设,就错过了webm文件,我研究一下先

decike commented 10 months ago

第二次是卡验证码了,第一次弹出图形验证码让选乌龟他给全选了,然后跳出第二次验证就一直不动了。 2.webm 第三次是卡在某个界面一直不动。 3.webm

QIN2DIM commented 10 months ago

第三次是卡在某个界面一直不动。

@decike 第三个是因为什么- -好奇怪

QIN2DIM commented 10 months ago

我加了三层保险,应该是一点问题都没有了,除非页面元素改动必须更新外。

之前项目缺少足够测试,我一个 try except 都没写,自然是会有很多意想不到的超时情况。(Epic Stroe 这个站点本身带宽就不大,经常出现页面元素加载很慢甚至 domtree 一直加载不出来的情况)

QIN2DIM commented 10 months ago

第二个卡验证码的问题现在也解决了,不过这个很玄学,我再观察观察

decike commented 10 months ago

辛苦了,超级感谢🥹测试没什么问题