【发布时间】:2018-07-06 13:05:59
【问题描述】:
示例页面源代码如下所示
<div class='div1'>
<table class="foot-market">
<tbody data-live="false">
<td class='today-name'/>
</tbody>
<tbody data-live="false">
<td class='today-name'/>
</tbody>
<tbody data-live="false">
<td class='today-name'/>
</tbody>
</table
<table class="foot-market">
<tbody data-live="false">
<td class='today-name'/>
</tbody>
<tbody data-live="false">
<td class='today-name'/>
</tbody>
<tbody data-live="false">
<td class='today-name'/>
</tbody>
</table
</div>
说明
你好,
所以让我们开始吧。
如上所示,我正在与之交互的代码 sn-p 位于 <div class='div1'> 中。
<td class='today-name'> 是可点击的,一旦点击它就会呈现一个页面(感兴趣的页面)
所以我想循环获取每个<tbody data-live="false"> 并单击它。
根据我的研究,我没有发现任何类似的东西,但我发现了一些有趣的东西,但没有任何帮助。感谢您提供的所有帮助。
谢谢。
我的代码
import time
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.firefox.options import Options
from BeautifulSoup import BeautifulSoup
#some of the imports are for headless firefox so don't mind them
#for.testing.purposes.only
driver = webdriver.Firefox()
url = 'here://code.above.com/'
driver.get(url)
#looping rows in selenium
table = driver.find_elements_by_xpath("//table[@class='foot-market']")
for row in table.find_element_by_xpath("//tbody[@data-live='false']"):
row.find_element_by_xpath("//td[@class='today-name']").click()
#try for one row first
# driver.back()
break
错误
返回的错误在行:
for row in table.find_element_by_xpath("//td[@data-live='false']"):
例外:
AttributeError: 'list' 对象没有属性 'find_element_by_xpath'
这是有道理的,但我如何实现这一点......
【问题讨论】:
-
看看吧。 td 是可点击的广告位于 tbody 中。所以我在点击每个 td 时循环遍历 tbody ......问题是我如何点击这个:: row.find_element_by_xpath("//td[@class='today-name']").click() 因为使用驱动程序而不是行它不会循环
标签: python selenium web-scraping