Selenium Python 3.4.3 Automatic Torrenting: Link section

191 views Asked by At

What i am trying to do is make a simple program that lets me run and it basically goes to Torrentz and follows a few link to finally be able to download the file through uttorent. Below is what i have coded so far and i cant seem to make the variable linkElem work. And i also cant seem to make linkElem.find_elements_by_xpath go to the link necessary. If you think you know what is wrong, please do help. Thanks.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


browser = webdriver.Firefox()
browser.get('https://torrentz.eu/')

searchElem = browser.find_element_by_id('thesearchbox')
searchElem.send_keys('Limitless')
searchButton = browser.find_element_by_id('thesearchbutton')
searchButton.click()

linkElem = linkElem.find_elements_by_xpath("//div[@class='results']//a[@href='/9ea0c575520a3065d85b285c9474231192368db7']")


#wait = WebDriverWait(browser, 6)
#linkElem = wait.until(EC.visibility_of_element_located((By.href, "/9ea0c575520a3065d85b285c9474231192368db7")))
#linkElem.clear()

#linkElem = browser.find_element_by_link_text('S01E20 HDTV x264 LOL ettv')
#linkElem.click()


#SignIn = browser.find_elements_by_id('signIn')
#SignIn.click()
#passwordElem.submit()
1

There are 1 answers

2
alecxe On BEST ANSWER

I don't think you can and should rely on the href attribute value. Instead, get the links from under the dl elements inside the search results container. Also, add a wait:

# wait for search results to appear
wait = WebDriverWait(browser, 6)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.results dl")))

links = driver.find_elements_by_css_selector("div.results dl dt a")
links[0].click()

links in your case would contain all of the search results links, links[0] is the first link.