我有此代码:
from selenium import webdriver
from selenium.webdriver.support.ui import Select
myurl = "https://foobar.pl"
driver = webdriver.Chrome()
driver.get(myurl)
select = Select(driver.find_element_by_xpath('/html/body/div/select'))
select.select_by_visible_text('foobar')
time.sleep(5)
选择“ foobar”后,将出现一个输入字段。但在我尝试之后:
driver.find_element_by_xpath('/html/body/div/div[2]/input').click()
我知道
ElementNotVisibleException:元素不可见
如何更新驱动程序,使它可以看到输入,而无需刷新页面(我会放弃选择)?
您可以尝试下面的代码段吗?您可能需要在单击和获取要检索的字段之间等待。
select = Select(driver.find_element_by_xpath('/html/body/div/select'))
select.select_by_visible_text('foobar')
time.sleep(5)
driver.find_element_by_xpath('/html/body/div/div[2]/input').click()
您首先需要单击该字段,然后等待,然后再次单击。
通常,当您在与页面交互后JavaScript修改页面时,会发生这种情况。解决方法是使用WebDriverWait
:
from selenium.webdriver.support import ExpectedConditions as EC
wait = WebDriverWait(driver, 5)
input = wait.until(EC.element_to_be_clickable(By.xpath('/html/body/div/div[2]/input'))
input.click()