Im new to python, or coding for that matter...
This part of the code allows me to find all the elements that I want to click (click on the link open a new tab)
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.rezultati.com/kosarka/filipini/kup/")
list_of_links = driver.find_elements_by_css_selector(".cell_ad.time")
for link in list_of_links:
link.click()
Obviously this for loop only opens links.. I'm interested in how to add, somethin like this, to collect some data:
# wait to open link
time.sleep(3)
# handle new window
newtab = driver.current_window_handle
driver.switch_to_window(newtab)
# collecting data and print data
date = driver.find_elements_by_class_name("mstat-date")
for d in date:
print(d.text)
# Some code to close newtab?
????
How do I implement this throughout the for loop.. In other words want to go in every link and collect some data.. Whether it is possible? Some suggestions or examples code?
You can try below code that allow to handle each window with match results in a loop:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.rezultati.com/kosarka/filipini/kup/")
list_of_links = driver.find_elements_by_css_selector(".cell_ad.time")
cur_win = driver.current_window_handle # get current/main window
for link in list_of_links:
link.click()
driver.switch_to_window([win for win in driver.window_handles if win !=cur_win][0]) # switch to new window
date = driver.find_elements_by_class_name("mstat-date")
for d in date:
print(d.text)
driver.close() # close new window
driver.switch_to_window(cur_win) # switch back to main window
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With