0
セレンを使用してページデータをクロールします。 のページで何らかのアクションを実行する必要があります。1.要素を見つけてクリックします。クリックコールはjsの機能です 2. above js関数の変更タグのhrefバルブ、私は新しいhrefを取得する必要があります。 しかし、私は失敗しました、href値はすべて同じままです!コードピースはここにあります。セレンは属性値を変更できません
class wait_for_href_changed(object):
def __init__(self, locator, old):
self.locator = locator
self.href = old
def __call__(self, driver):
try:
element_href = EC._find_element(driver, self.locator).get_attribute('href')
return element_href != self.href
except :
return False
.....
for i in range(1,3):
for j in range(1,10):
try:
old_href = self.driver.find_element_by_xpath('//*[@id="mainTable"]/tbody[1]/tr/td/table/tbody/tr/td[1]/table/tbody/tr/td[2]/a').get_attribute('href')
nexts = self.driver.find_element_by_xpath('//*[@id="secTable"]/tbody/tr['+str(i)+']/td['+str(j)+']')
nexts.click()
#self.driver.execute_script('arguments[0].click()',nexts)
element = WebDriverWait(self.driver, 10).until(
wait_for_href_changed((By.XPATH, '//*[@id="mainTable"]/tbody[1]/tr/td/table/tbody/tr/td[1]/table/tbody/tr/td[2]/a'),old_href))
target = element.get_attribute('href')
yield Request(target,callback=self.parse2)
except:
break