Ich benutze Selen, um Seite Daten zu crawlen, sollte einige Aktion auf Seite wie folgt durchgeführt werden: 1. Suchen Sie ein Element und klicken Sie darauf, klicken Sie auf eine js funtion 2. über js Funktion Änderung Tag a's href Ventil, ich sollte die neue href bekommen. Allerdings habe ich versagt, Href Wert bleibt egal! Hier sind die Codepizes.Selen kann nicht geändert werden Attributwert
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