我無法在 streamlit 的 iframe 頁面上執行 selenium 代碼。當我通過在 cmd 上執行streamlit run app5.py來運行 .py 檔案時,它會生成兩個瀏覽器,一個是 streamlit 應用程式 (localhost:8501),另一個是一個空頁面,頂部有一條警告訊息,上面寫著“Chrome由自動化測驗軟體控制。” 我對 selenium 代碼沒有運行的原因的猜測是因為它在空頁面上而不是在流光頁面上執行 selenium。有沒有辦法洗掉或不填充空白頁面?
這是我的代碼:
import streamlit as st
from dateutil.parser import parse
import streamlit.components.v1 as components
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
st.title("Auto Search App")
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 20)
components.iframe("https://wego.here.com/", height = 500)
search_input = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input.input_search")))
search_input.click()
search_input.send_keys('Seattle')
search_input.send_keys(Keys.ENTER)
這是我在cmd上執行streamlit run app5.py時的兩個頁面的截圖(最近生成的是空頁面):

uj5u.com熱心網友回復:
無頭運行硒。
代碼:
import streamlit as st
from dateutil.parser import parse
import streamlit.components.v1 as components
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options=chrome_options)
wait = WebDriverWait(driver, 20)
components.iframe("https://wego.here.com/", height = 500)
search_input = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input.input_search")))
search_input.click()
search_input.send_keys('Seattle')
search_input.send_keys(Keys.ENTER)
uj5u.com熱心網友回復:
您可以使用 window_handles 和 switch_to_window 方法來完成。
點擊iframe前先存盤視窗句柄
看看它是否有效
import streamlit as st
from dateutil.parser import parse
import streamlit.components.v1 as components
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
st.title("Auto Search App")
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 20)
#Switch to the other window
window_before = driver.window_handles[0]
driver.switch_to_window(window_before)
components.iframe("https://wego.here.com/", height = 500)
search_input = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input.input_search")))
search_input.click()
search_input.send_keys('Seattle')
search_input.send_keys(Keys.ENTER)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/378056.html
上一篇:如何在串列中創建重復的列?
下一篇:如何為“小門數”創建一列
