使用 Python Selenium 在不刷新页面的情况下重新加载 Web 源代码

您好,请问有没有什么方法可以不刷新页面就可以刷新站点源代码。问题是当我加载页面http://107.170.101.241:8080/getTableColumn/并在其中放置一些信息时 - 您可以在下面的代码中看到,然后单击分析显示新的文本区域。我想从这个文本区域获取文本,但我不能,因为源代码是“旧的”并且 xpath 无法找到它。最后一行代码是我要打印到控制台的内容。我尝试了 time.sleep 等,但没有任何帮助。

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support.ui import Select

import time


chromedriver = "/usr/local/bin/chromedriver"

driver = webdriver.Chrome(chromedriver)


driver.get("http://107.170.101.241:8080/getTableColumn/")

time.sleep(1)


datab = driver.find_element_by_xpath("//select[@name='dbVendor']")

database = Select(datab)

database.select_by_visible_text("Sybase")


datab2 = driver.find_element_by_xpath("//select[@name='options']")

database2 = Select(datab2)

database2.select_by_visible_text("Show By SQL Clause")


txt = driver.find_element_by_xpath("//textarea[@name='sql']")

txt.clear()

txt.send_keys("select trd.M_NB as 'Trade_number' from CRD_TRADE_REP trd")


txt1 = driver.find_element_by_xpath("//textarea[@name='metadata']")

txt1.clear()

txt1.send_keys("CRD_TRADE_REP, M_NB")


analyze = driver.find_element_by_xpath("//input[@type='submit']")

analyze.send_keys("")

analyze.send_keys(Keys.RETURN)


#cant find this textarea below

out = driver.find_element_by_xpath("//textarea[@name='outputText']")



忽然笑
浏览 295回答 1
1回答

翻过高山走不出你

在 devtools 中,如果你从你的元素向上滚动,你可以看到你的输出文本区域嵌套在:<iframe name="result" id="result" style="height: 180px; width: 800px;" scrolling="no" frameborder="0">这些需要在硒中进行额外处理。在脚本末尾试试这个:#Get the frameWebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@name='result']")))#wait for your object to be ready - i&nbsp; use clickable as i like itout = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//textarea[@name='outputText']")))print(out.text)#do stuff your stuff to the "out" element here#when ready to go back to the main page content (not the iframe)driver.switch_to_default_content()当我运行你的代码时,我得到了输出:表:tetSelect CRD_TRADE_REP(1,40) 列:selectList CRD_TRADE_REP.M_NB(1,12)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python