在运行脚本

时间:2017-05-04 09:07:02

标签: python selenium xpath

我试图用硒刮网页。通过检查页面和右键单击建议的xpath是不稳定的类型(/ html / body / table [2] / tbody / tr [1] / td / form / table / tbody / tr [2])。所以我尝试了以下解决方案:

driver = webdriver.Chrome("path")
driver.get("https://www.bundesfinanzhof.de/entscheidungen/entscheidungen-online")
time.sleep(1)
links=driver.find_element_by_xpath('//tr[@class="SuchForm"]')

甚至

links=driver.find_elements_by_xpath('//*[@class="SuchForm"]')

不要返回任何结果。但是在页面的早期我可以获得:

links=driver.find_element_by_xpath('//iframe')
links.get_attribute('src')

似乎之后:

<script language="JavaScript" src="/rechtsprechung/jscript/list.js" type="text/javascript"></script>

我再也无法找到任何元素了。 How do I determine the correct XPath? 表明脚本中的部分无法解析。然而,我所追寻的道路似乎不在我的道路之内。我是否误解了脚本在页面上的工作方式?

例如,稍后会有一条路径:

/html/body/table[2]/tbody/tr[1]/td/script

我希望这会产生这样的问题。我绝不是程序员,所以我对这个主题的理解是有限的。有人可以解释问题是什么,如果可能的解决方案吗?

尝试使用以下解决方案:

Find element text using xpath in selenium-python NOt Working

xpath does not work with this site, pls verify

1 个答案:

答案 0 :(得分:1)

$(document).ready(function() { init(); var clickMe = $("#clickme"); function init() { setTimeout(function() { clickMe.off("click").on("click", function() { $("#output").append("."); }) }, 100) } $("#recall").click(function() { init(); }); }) 位于table内,因此您需要在处理所需的iframe之前切换到iframe

tr

使用from selenium.webdriver.support.ui import WebDriverWait as wait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver.get("https://www.bundesfinanzhof.de/entscheidungen/entscheidungen-online") wait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@src='https://juris.bundesfinanzhof.de/cgi-bin/rechtsprechung/list.py?Gericht=bfh&Art=en']"))) link = driver.find_element_by_xpath('//tr[@class="SuchForm"]') 切换回driver.switch_to.default_content()