iT邦幫忙

1

Python使用Selenium完成MetaMask自動簽署合約

  • 分享至 

  • xImage

乳題

小弟正使用Selenium寫python的網頁自動機器人
現在遇到問題是當要簽署合約時,MetaMask會跳出新的"視窗"來給使用者按簽署
但是目前不知道怎麼切到"跳出的視窗"
不是tab喔,是一個新的外掛視窗
長這樣
https://ithelp.ithome.com.tw/upload/images/20230222/20152537E9BCeCkAVf.png

求解..

看更多先前的討論...收起先前的討論...
ccutmis iT邦高手 2 級 ‧ 2023-02-22 18:17:05 檢舉
試試這個? 我是用" python selenium switch to pop up window " 關鍵字搜的 如果這個不行你可以再爬文碰碰運氣...
https://www.educative.io/answers/how-to-handle-an-alert-and-pop-up-window-in-selenium-using-python
樂弟 iT邦新手 5 級 ‧ 2023-02-22 18:44:23 檢舉
這個我先前有嘗試過了,目前看起來是不適用
樂弟 iT邦新手 5 級 ‧ 2023-02-22 18:59:21 檢舉
#更
已找到解決辦法

```
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get('chrome-extension://{extensionID}/popup.html')
```

即可將彈跳出的視窗改到原先視窗的第二個tab執行
ccutmis iT邦高手 2 級 ‧ 2023-02-22 19:05:02 檢舉
有解就好
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
JamesDoge
iT邦高手 1 級 ‧ 2023-02-22 20:20:26
# 點擊簽署按鈕後,等待新的視窗開啟
time.sleep(5)

# 取得所有的視窗 handle
handles = driver.window_handles

# 切換到新開啟的視窗
for handle in handles:
    if handle != main_window:
        driver.switch_to.window(handle)
        break


# 找到簽署按鈕
sign_button = driver.find_element_by_xpath('//button[text()="Sign"]')


# 點擊簽署按鈕
sign_button.click()


# 完成操作後,切換回主視窗:
driver.switch_to.window(main_window)

樂弟 iT邦新手 5 級 ‧ 2023-02-23 08:52:10 檢舉

這個解我有問ChatGPT得到過,無效喔~
解答在上面ㄌ
感恩

我要發表回答

立即登入回答