我试图刮一个使用JavaScript的网站。我在Selenium中的xpath上看过类似的问题,但它们并没有真正的帮助。我尝试使用请求,但Javascript没有完全加载,所以我使用Selenium chrome驱动程序。
我尝试了完整的xpath、xpath和类名,但无法获得元素。下面是我的代码和html。
site = 'https://finra-markets.morningstar.com/BondCenter/BondDetail.jsp?ticker=C614515&symbol=BBBY4144685'
browser = webdriver.Chrome(executable_path)
browser.get(site)
browser.find_elements_by_xpath('//*[@id="msqt_summary"]/div[2]/table/tbody/tr[1]/td[2]/span[@class="gr_text1"]')
browser.find_elements_by_xpath('//*[@id="no_border_no_center"]/div/div/div[1]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[2]/span[@class="gr_text1"]')
<html xmlns="//www.w3.org/1999/xhtml"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<meta http-equiv="expires" content="12 Jan 2018">
<title>Bond - Morningstar</title>
<link href="//quotes.morningstar.com/bondq/static/common/css/reports.css" rel="stylesheet" type="text/css">
</style>
<script type="text/javascript" src="//quotespeed.morningstar.com/js/qt_loader.js"></script><link rel="stylesheet" type="text/css" href="//finra-markets.morningstar.com/apis/quicktake/quicktake_finra.css"><script type="text/javascript" src="//finra-markets.morningstar.com/apis/quicktake/version_finra.js"></script>
<script type="text/javascript">window.onerror=function(msg){$("body").attr("JSError",msg);}</script>
</head>
<body id="no_border_no_center">
<div class="wrapper">
<div class="gr_row_a5" id="msqt_summary">
<div class="gr_colm_a2b gr_text1">
<table class="gr_table_b1" border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr valign="top">
<td class="gr_table_colm23">
<h3 class="ms-gl-font10"> CUSIP</h3>
<span class="gr_text1"> 075896AB6</span>
</td>
</tr>
元素位于IFRAME内部,您需要首先切换它才能访问元素。
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
site = 'https://finra-markets.morningstar.com/BondCenter/BondDetail.jsp?ticker=C614515&symbol=BBBY4144685'
browser = webdriver.Chrome(executable_path)
browser.get(site)
WebDriverWait(browser,10).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"ms-bond-detail-iframe")))
print(browser.find_element_by_xpath('//*[@id="msqt_summary"]/div[2]/table/tbody/tr[1]/td[2]/span[@class="gr_text1"]').text)
要从iframe
中出来,需要使用。
browser.switch_to.default_content()
我试图通过xpath获取一个输入元素,但是return语句是false。 当我试图获取标签(它是输入的唯一兄弟)时,它返回true。我也尝试通过输入类型[@type=“checkbox”]获取它,但也失败了。 null
我会收到以下错误消息: el=self.driver.find_element_by_xpath(element_query)文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第393行,在find_element_by_xpath中返回self.find_element(by=by.
请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码:
我需要在HTML中找到此元素 我就是这样做的 使用XPATH,由Chrome控制台生成: 使用XPATH,它正在寻找某种正则表达式: 最后使用XPATH,它通过页面精确到我的元素 他们都没有工作。All给出了一个例外 硒。常见的例外情况。InvalidSelectorException:Message:u'由于以下错误,给定的选择器无法找到具有xpath表达式的元素:\n语法错误:表达式不是合法表
我正在努力编写代码检查下载是由selenium和chrome驱动程序完成的。我的想法是 1.转到下载页面(“Chrome://下载/”) 然后尝试单击developer工具中的Ctrl+F,再次粘贴xpath。我找不到元素。为什么?检查没有框架。
问题内容: 以下是使用Java的WebDriver代码段: 执行代码后,出现以下异常: 线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:{“方法”:“ xpath”,“选择器”:” // html / body / div [2] / span / center / form / table / tbody / tr / td