如何为元素创建 xpath



我是网页抓取硒用法的新手。 我想为要执行的元素创建 xpath

"onclick="clearwsInfo('2015011800017','2015011800017',this);"在下面添加了完整的 HTML 代码

<html>
<head>
    <script src='../../accidentweb/interface/DwrUtilsDao.js'></script>
    <script src='../../accidentweb/engine.js'></script>
    <script src='../../accidentweb/util.js'></script>
   <base href="http://114.255.167.200:8092/cidasEN/extend/">
   <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <LINK href="css/css.css" type=text/css rel=stylesheet>
    <title>Functional Query results</title>
    </head>
    <body bottomMargin=0 leftMargin=0 topMargin=0 >
 <TABLE  border="1"  bordercolorlight="#6D6D6D" cellspacing="1"
      bordercolordark="#C0C0C0" width="120%"
             cellpadding="0"  bgcolor="#FFFFFF" class=font9  style="BORDER-        bottom: #4D5E8C 1px solid" >
  <tr  bgcolor="#CCCCCC"     > 
      <td  class="title_1" width ='6%' align="center">department</td>
      <td  class="title_1" width ='6%' align="center">case number</td>   
      <td  class="title_1" width ='10%' align="center">time of accident</td>
      <td class="title_1" width ='20%' align="center">location of scene of accident</td>
      <td class="title_1" width ='6%' align="center">operator</td>
  </tr>
  <tr bgcolor="#FFFFFF" style="cursor:hand" 
      onmouseover="onmouseoverTR(this)" 
      onmouseout="onmouseoutTR(this)"         
      onclick="clearwsInfo('2015011800017','2015011800017',this);"
      ondblclick='doSelect("auditflowForm","2015011800017");'> 
   <TD  align="center">
    <script type="text/javascript" >                               
                            outprint('FoShan Branch');                               
        </script>   
   </TD>
   <TD  align="center">
    <script type="text/javascript" >                               
                            outprint('4406150001');                              
        </script>   
   </TD>
   <TD  align="center">
    <script type="text/javascript" >                               
                            outprint('2015-01-09 11:00');                                
        </script>
   </TD>
   <TD  align="left">
      <script type="text/javascript" >                             
                            outprint('佛山市南海区大沥镇广佛路大镇加油站路口');                                 
        </script>
   </TD>
    <TD  align="left">
      <script type="text/javascript" >                             
                            outprint('陈三林');                                 
        </script>
   </TD>  
   </TR>

     <script anguage="javascript" >
      //clearwsInfo("2015011800017","2015011800017","");
    </script>

</TABLE>
</body>
</html>

我尝试了以下方法,但出现错误

 chromedriver = 'C:UsersVM82958DesktopIEIEDriverServer.exe'
 browser = webdriver.Ie(chromedriver)
 tr = browser.find_element_by_xpath('//html/body/TABLE/tr')

错误是

Traceback (most recent call last):
 File "D:surendraNeon-WorkSpaceEvidenseDataselinum.py", line 26, in    <module>
    tr = browser.find_element_by_xpath('//html/body/TABLE/tr')  #Post Parents Element of the element you want to click for more help (If you dont know how to use XPath)
  File "C:Python27libsite-packagesseleniumwebdriverremotewebdriver.py", line 293, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
  File "C:Python27libsite-packagesseleniumwebdriverremotewebdriver.py",   line 752, in find_element
'value': value})['value']
  File "C:Python27libsite-packagesseleniumwebdriverremotewebdriver.py", line 236, in execute
self.error_handler.check_response(response)
  File "C:Python27libsite-  packagesseleniumwebdriverremoteerrorhandler.py", line 192, in check_response
   raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to find  element with xpath == //html/body/TABLE/tr

TABLE更改为小写table,可能会有一些解析过程将标签名称转换为小写。

您可能需要等待一段时间才能完成表呈现:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC

ie_driver = 'C:UsersVM82958DesktopIEIEDriverServer.exe'
browser = webdriver.Ie(ie_driver)
browser.get(URL)
tr = wait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//table/tr")))
使用

/html/body/TABLE/tr怎么样?注意单斜杠而不是双斜杠......无论如何,您使用的是绝对xPath。

但我认为安德森的回答是正确的。也等待它首先加载。

最新更新