繁体   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