非常感谢。 我正在使用%格式来增加for循环内的行号,以在行上单击()来打开新标签页,抓取数据,关闭新标签页并单击下一行。该代码运行良好,直到它到达不是可点击元素的行为止。 try / except没有捕获异常。
错误消息:
selenium.common.exceptions.NoSuchEleme ntException: Message: Unable to locate element: .//table[1]/tbody/tr[3]/td[3]
我在这里迷路了。我不太确定在循环遍历整个范围时如何处理此问题。
from selenium.common.exceptions import NoSuchElementException
row_start = 2
x = len(driver.find_elements_by_xpath('.//table[1]/tbody/tr'))
for c in range(row_start, x + 1):
table_row = driver.find_element_by_xpath('.//table[1]/tbody/tr[%d]/td[3]' % c)
try:
table_row.click()
except NoSuchElementException:
continue
table_row.click()
目的是当无法单击某行时,跳过该行并继续到下一行。
答案 0 :(得分:2)
异常来自try上方的行。尝试以下代码。
$stateProvider
.state('app.home', {
url: '/',
controller: 'HomeCtrl as vm',
template: homeView,
});