簡體   English   中英

除非單擊文本,否則我無法訪問隱藏了 selenium 個元素的文本框

[英]I can not access text box with selenium elements hid unless text clicked

我在 python 和 Selenium 工作。當我點擊這條線時

 <div tabindex="0" class="page click-enterkey" style="text-align: center; margin: 0px 1em; float: left;">7</div>

並使用click()send.keys(8)復制路徑,它不會 go 到第 8 頁它只是閃爍並繼續移動到下一行代碼。 但是,作為一個人,如果我單擊該框,它會更改元素以顯示帶有輸入部分的第二張圖片。

我不知道該怎么辦

magicBox = driver.find_element('xpath','//*[@id="searchResults"]/div[1]/div/div[1]/div[2]/div[2]').click()
magicBox.send_keys('7')
magicBox.send_keys(Keys.RETURN)

我也試過

magicBox = driver.find_element('xpath','//*[@id="searchResults"]/div[1]/div/div[1]/div[2]/div[2]').click().send_keys('7')
magicBox.send_keys(Keys.RETURN)

圖像

使用click() () 方法單擊元素后,您似乎遇到了send_keys()方法無法按預期工作的問題。

以下是您可以嘗試解決問題的方法:

  1. 首先,確保您已經導入了 Keys 模塊:

     from selenium.webdriver.common.keys import Keys
  2. 單擊元素后,等待頁面加載后再使用send_keys() 您可以使用WebDriverWait class 和expected_conditions模塊等待元素可點擊,然后再繼續下一步。

     from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC magicBox = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="searchResults"]/div[1]/div/div[1]/div[2]/div[2]'))).click() magicBox.send_keys('7') magicBox.send_keys(Keys.RETURN)

這應該可以解決問題並允許您成功地將密鑰發送到元素。

鑒於您提供的 HTML,您正在嘗試將send_keys()發送到無效的 DIV。 我的猜測是,如果您單擊屏幕截圖中包含“7”的框,DOM 中將出現一個 INPUT HTML 元素,您可以send_keys()一個新值。

您也可以檢查 URL 並查看是否有?page=7或類似內容,您只需編輯 URL 即可直接轉到您想要的頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM