硒有問題。嘗試決議一個網頁并在運行它時我的 UI 已損壞,因此無法用文本填充欄位(出現不可互動的錯誤)

運行 selenium 后我的總體外觀如何

訊息:元素不可互動(會話資訊:chrome=99.0.4844.84)堆疊跟蹤:回溯:Ordinal0 [0x00BF9943 2595139] Ordinal0 [0x00B8C9F1 2148849] Ordinal0 [0x00A843F0 1065968] Ordinal0 [0x00AAC4D3 1230035] Ordinal0 [0x00AABB8B 1227659] Ordinal0 [0x00ACB9EC 1358316] Ordinal0 [0x00AA7474 1209460] Ordinal0 [0x00ACBC04 1358852] Ordinal0 [ 0x00ADBAF2 1424114] Ordinal0 [0x00ACB806 1357830] Ordinal0 [0x00AA6086 1204358] Ordinal0 [0x00AA6F96 1208214] GetHandleVerifier [0x00D9B232 1658114] GetHandleVerifier [0x00E5312C 2411516] GetHandleVerifier [0x00C8F261 560433] GetHandleVerifier [0x00C8E366 556598] Ordinal0 [0x00B9286B 2173035] ORDINAR0 [0x00B975F8 2192888] ORDINAR0 [0x00B97605 2193125] ordinal0 [0x00ba11fc 2232828] rtlgetapcontainernamamedobjectPath [0x77aa7a7e 286] RTLGETAPPCONTAINNAUGEDOMJECTPAPHARDPARMARDPATH [0x77aaa7a4e 238]
我的代碼:
url = "https://opi.dfo.kz/p/ru/archive-publication/corporative-events-2020-14-07"
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(url)
element = driver.find_element(By.XPATH, '//*[@id="CorporativeEvents20201407"]/div[1]/div[1]/div/div[2]/div[1]/span[3]')
element.send_keys('010140000143')
請幫我!
uj5u.com熱心網友回復:
您不能將文本直接發送到該元素。
您應該單擊該元素,這將打開另一個input元素,您可以在其中插入文本輸入。
此外,您必須在此處使用預期條件顯式等待。
這有效:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = "https://opi.dfo.kz/p/ru/archive-publication/corporative-events-2020-14-07"
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="CorporativeEvents20201407"]/div[1]/div[1]/div/div[2]/div[1]/span[3]'))).click()
wait.until(EC.visibility_of_element_located((By.XPATH, "//input[@class='editor-text tip']"))).send_keys("010140000143")
XPath 定位器'//*[@id="CorporativeEvents20201407"]/div[1]/div[1]/div/div[2]/div[1]/span[3]'也可以而且應該改進。您可以使用//div[@class='logic-group-condition' and .//span[@field-name='tbOpiActiveRevisions_flBin']]代替。這個定位器要可靠得多。所以你的代碼將是:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = "https://opi.dfo.kz/p/ru/archive-publication/corporative-events-2020-14-07"
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@class='logic-group-condition' and .//span[@field-name='tbOpiActiveRevisions_flBin']]"))).click()
wait.until(EC.visibility_of_element_located((By.XPATH, "//input[@class='editor-text tip']"))).send_keys("010140000143")
這是應用我的代碼后網頁的螢屏截圖:

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/450454.html
標籤:Python 硒 硒网络驱动程序 屏幕抓取 网络驱动程序等待
上一篇:單擊硒中的元素
