import pytest
import os

from selenium.webdriver import Edge
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

@pytest.fixture
def browser():
    path_to_driver = os.path.join('drivers', 'msedgedriver.exe')

    cap = DesiredCapabilities().EDGE
    cap["platform"] = "ANY"
    driver = Edge(executable_path=path_to_driver, capabilities=cap)
    driver.implicitly_wait(10)
    yield driver
    driver.quit()
  

def test_basic_duckduckgo_search(browser):
    URL = 'https://www.duckduckgo.com'
    PHRASE = 'panda'
  
    browser.get(URL)
  
    search_input = browser.find_element_by_id('search_form_input_homepage')
    search_input.send_keys(PHRASE + Keys.RETURN)
  
    link_divs = browser.find_elements_by_css_selector('#links > div')
    assert len(link_divs) > 0
    
    xpath = f"//div[@id='links']//*[contains(text(), '{PHRASE}')]"
    results = browser.find_elements_by_xpath(xpath)
    assert len(results) > 0
    
    search_input = browser.find_element_by_id('search_form_input')
    assert search_input.get_attribute('value') == PHRASE
    
def test_results_page(browser):    
    URL = 'https://www.duckduckgo.com'
    PHRASE = 'Python 3'
  
    browser.get(URL)
  
    search_input = browser.find_element_by_id('search_form_input_homepage')
    search_input.send_keys(PHRASE + Keys.RETURN)

    title = browser.title
    assert title == 'Python 3 at DuckDuckGo'
    
    more_button = browser.find_element_by_class_name('result--more__btn')
    more_button.click()
    
    title = browser.title
    assert title == 'Python 3 at DuckDuckGo'
      
    
    