设置
我的WordPress后端中有一个有几行的表。每行包含一个我想使用Selenium打开的链接。
也就是说,我想循环遍历<tbody>中的每个<tbody>。
browser被定义为,
browser = webdriver.Firefox(executable_path='mypath')
<tbody>有通常的形式,
<tbody>
<tr>...</tr>
...
<tr>...</tr>
</tbody>代码到目前为止
<tr>导航到正确的页面后,
tbody = browser.find_element_by_css_selector('.widefat > tbody:nth-child(2)')
browser.find_element_by_xpath('//*[@title="Dutch: Add translation"]').click()正确选择<tbody>元素,并正确打开第一个<tr>的右链接。
<tr>上循环我不知道如何在<tr>中的所有<tbody>上成功地循环这个。
我试过以下几种方法
tbody = browser.find_element_by_css_selector('.widefat > tbody:nth-child(2)')
for row in tbody.find_element_by_xpath('./tr'):
browser.find_element_by_xpath('//*[@title="Dutch: Add translation"]').click()但这给了TypeError: 'FirefoxWebElement' object is not iterable。
显然,tbody.find_element_by_xpath('./tr')不是选择所有<tr>的正确方法。
如何正确选择所有<tr>**'s ?**
发布于 2018-02-23 10:17:19
for row in tbody.find_element_by_xpath('./tr')打算遍历单个WebElement,而您需要遍历元素列表:
for row in tbody.find_elements_by_xpath('./tr')发布于 2018-02-23 10:17:04
使用(注意s):
tbody.find_elements_by_xpath('./tr')而不是:
tbody.find_element_by_xpath('./tr')它只返回第一次匹配。
发布于 2018-10-19 06:17:38
您可以使用前面指定的find_element_by_xpath方法,但也可以使用我喜欢使用的find_elements_by_tag_name方法。
tbody_rows = tbody.find_elements_by_tag_name('tr')
for tbody_row in tbody_rows:
#do your stuff here with each row in turnhttps://stackoverflow.com/questions/48945476
复制相似问题