예제 #1
0
 def click_to_rules_topmenu_item(self, driver):
     WebDriverWait(driver, 3).until(
         EC.presence_of_element_located((By.XPATH, self.xpath_locator_rules_topmenu_item))).click()
     return RulesPage(driver)
    def extractDetails(self):

        yelp_name = 'none'
        yelp_url = ''
        yelp_reviews = ''
        yelp_friends = ''
        yelp_city = ''
        yelp_elite = ''

        row = self.input_data.pop()
        email = row[1]
        index = row[0]

        logTxt = "+-+-+-+-+-+-+-+- {0} +-+-+-+-+-+-+-+-\n".format(email)

        driver = self.drivers.pop()

        if driver is None:
            if platform.system() is 'Windows':
                driver = webdriver.Chrome(os.getcwd() +
                                          '/WebDriver/chromedriver.exe')
            else:
                driver = webdriver.Chrome(os.getcwd() +
                                          '/WebDriver/chromedriver')

            driver.maximize_window()
            driver.get(self.start_url)

            try:
                login = WebDriverWait(driver, 200).until(
                    EC.presence_of_element_located(
                        (By.CSS_SELECTOR, "form#ajax-login > input#email")))
                password = driver.find_element_by_css_selector(
                    'form#ajax-login > input#password')
                submit_btn = driver.find_element_by_css_selector(
                    'form#ajax-login > button.submit')

                login.send_keys(self.id)
                time.sleep(5)
                password.send_keys(self.pw)
                time.sleep(5)
                submit_btn.click()
                logTxt = logTxt + '\tLogin Successfully!\n'

                usr_btn = WebDriverWait(driver, 200).until(
                    EC.element_to_be_clickable((
                        By.CSS_SELECTOR,
                        "span.icon.icon--14-triangle-down.icon--size-14.icon--inverse."
                        "icon--fallback-inverted.u-triangle-direction-down."
                        "user-account_button-arrow.responsive-visible-large-inline-block"
                    )))
                usr_btn.click()

                logTxt = logTxt + "\tClicked 'Popup' Successfully!\n"

                find_friends = WebDriverWait(driver, 200).until(
                    EC.presence_of_all_elements_located(
                        (By.CSS_SELECTOR,
                         "ul.drop-menu-group--nav.drop-menu-group > li")))
                find_friends[1].click()
                logTxt = logTxt + "\tClicked 'Find Friends' Successfully!\n"

            except:
                logTxt = logTxt + "\t(Warning) We can't access to first page of yelp\n"
                print(logTxt)
                driver.quit()
                self.drivers.append(None)
                return

        try:
            query = WebDriverWait(driver, 200).until(
                EC.presence_of_element_located(
                    (By.XPATH, "//input[@name='query']")))
            logTxt = logTxt + "\tFound 'Query Box' Successfully!\n"
        except:
            logTxt = logTxt + "\tCan't find 'Query Box' inputbox\n"
            print(logTxt)
            self.input_data.append(row)
            time.sleep(10)
            driver.refresh()
            self.drivers.append(driver)
            return

        try:
            action_chain = ActionChains(driver)
            action_chain.click(query).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).send_keys(Keys.DELETE) \
                .perform()

            query.send_keys(email)
            query.send_keys(Keys.ENTER)
        except:
            logTxt = logTxt + "\tCan't input email into query inputbox\n"
            print(logTxt)
            self.drivers.append(driver)
            return

        try:
            WebDriverWait(driver, 200).until(
                EC.presence_of_element_located(
                    (By.CSS_SELECTOR, "div.section-header_block-main")))

            member_row = driver.find_element_by_css_selector("div.member-row")

            try:
                yelp_name = member_row.find_element_by_id(
                    "dropdown_user-name").text
            except:
                yelp_name = ''

            try:
                yelp_url = member_row.find_element_by_id(
                    "dropdown_user-name").get_attribute('href')
            except:
                yelp_url = ''

            try:
                yelp_city = member_row.find_element_by_css_selector(
                    "li.user-location.responsive-hidden-small").text
            except:
                yelp_city = ''

            try:
                yelp_friends = member_row.find_element_by_css_selector(
                    "li.friend-count.responsive-small-display-inline-block"
                ).text
            except:
                yelp_friends = ''

            try:
                yelp_reviews = member_row.find_element_by_css_selector(
                    "li.review-count.responsive-small-display-inline-block"
                ).text
            except:
                yelp_reviews = ''

            try:
                yelp_elite = member_row.find_element_by_css_selector(
                    "li.is-elite.responsive-small-display-inline-block")
                yelp_elite = 'yes'
            except:
                yelp_elite = 'no'

        except:
            logTxt = logTxt + "\tCan't find details\n"

        self.cnt += 1
        logTxt = logTxt + "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + \
                 "\tYelp Name: {0}\n\tYelp URL: {1}\n\tYelp Reviews: {2}\n\tYelp Friends: {3}\n\tYelp City: {4}\n" \
                 "\tYelp Elite: {5}\n\n\tTotal Scraped: {6}\n". \
                     format(yelp_name, yelp_url, yelp_reviews, yelp_friends, yelp_city, yelp_elite, self.cnt)
        print(logTxt)

        #self.output_data.append([index, email, yelp_name, yelp_url, yelp_reviews, yelp_friends, yelp_city, yelp_elite])
        self.drivers.append(driver)
        self.writer.writerow([
            email, yelp_name, yelp_url, yelp_reviews, yelp_friends, yelp_city,
            yelp_elite
        ])
예제 #3
0
def wait_until(driver, timeout, by, locator):
    element_visible = EC.visibility_of_element_located((by, locator))
    return WebDriverWait(driver, timeout).until(element_visible)
예제 #4
0
def wait_invisibility_xpath(driver, xpath, wait_timeout=None):
    if wait_timeout is None:
        wait_timeout = WAIT_TIMEOUT

    WebDriverWait(driver, wait_timeout).until(
        ec.invisibility_of_element_located((By.XPATH, xpath)))
예제 #5
0
 def Log_out(self, time=100):
     self.driver.find_element(By.XPATH, self.Log_out_button_locator).click()
     return WebDriverWait(self.driver, time).until(
         expected_conditions.presence_of_element_located(
             (By.CLASS_NAME, self.login_locator)),
         message=f"Failed to logout via {self.login_locator}")
예제 #6
0
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get(
    'http://www.zsggzy.com/news_,11,12,22,_%D5%FE%B8%AE%B2%C9%B9%BA_1___.html')

locator = (
    By.XPATH,
    '/html/body/table/tbody/tr/td/table[2]/tbody/tr[2]/td[2]/table[1]/tbody/tr[2]/td/table/tbody/tr[1]/td/table/tbody/tr[1]/td[1]/a'
)
WebDriverWait(driver, 10).until(EC.presence_of_element_located(locator))
# time.sleep(1)

# val=driver.find_element_by_xpath('//*[@id="infolist"]/li[1]/div/a').text
# print(val)
# driver.execute_script("javascript:__doPostBack('MoreInfoList1$Pager','2')")
# time.sleep(2)
num = 2
# driver.get('http://www.gaztbw.gov.cn/jyxx/001001/.html')
url = driver.current_url
page = re.findall('_(\d+)___.html', url)[0]
if int(page) != num:
    s = "_%d___.html" % num
    url = re.sub("_[0-9]+___.html", s, url)
    print(url)
예제 #7
0
Motivational motto: Do difficult things and get something
****************************************
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.maximize_window()

driver.get('https://www.12306.cn/index/')

js = """
var a = document.getElementById("fromStationText");
var b = document.getElementById("fromStation");
var c = document.getElementById("toStationText");
var d = document.getElementById("toStation");
var e = document.getElementById("train_date");
a.value = arguments[0];
b.value = arguments[1];
c.value = arguments[2];
d.value = arguments[3];
e.readonly = false;
e.value = arguments[4];
"""
driver.execute_script(js,'上海','SHH','杭州东','HGH','2019-08-07')

loc_find = (By.XPATH,'//a[@id="search_one"]')
WebDriverWait(driver,20).until(EC.visibility_of_element_located(loc_find))
driver.find_element(*loc_find).click()
예제 #8
0
 def find(self):
     element = WebDriverWait(self.browser, 10).until(
         EC.visibility_of_element_located(locator=self.locator)
     )
     self.web_element = element
     return None
예제 #9
0
 def click(self):
     element = WebDriverWait(self.browser, 10).until(
         EC.element_to_be_clickable(locator=self.locator)
     )
     element.click()
     return None
예제 #10
0
)

# 启动浏览器并设置等待超时时间
browser = webdriver.PhantomJS(
    executable_path='C:\\phantomjs\\bin\\phantomjs.exe',
    desired_capabilities=dcap)
browser.implicitly_wait(10)

# 获取登录面
browser.get('https://ui.ptlogin2.qq.com/cgi-bin/login?style=8&appid=523005422&\
s_url=https%3A%2F%2Faq.qq.com%2Fcn2%2Fmobile_index&low_login=0&hln_css=\
https%3A%2F%2Faq.qq.com%2Fv2%2Fimages%2Flogo_new.png&hln_custompage=1')

loginButtonLocator = (By.ID, 'go')
try:
    WebDriverWait(browser, 10, 0.5).until(
        EC.visibility_of_element_located(loginButtonLocator))
except Exception:
    browser.close()
    sys.exit(-1)

print "登录按钮加载成功:", time.time()

# 获取用户名密码和登录元素
idTextField = browser.find_element_by_id('u')
passwordTextField = browser.find_element_by_id('p')
loginButton = browser.find_element_by_id('go')

# 输入用户名密码并点击登录
idTextField.clear()
passwordTextField.clear()
idTextField.send_keys(qq)
예제 #11
0
 def test_webview_simulator_native(self):
     self.driver.find_element_by_accessibility_id("A股开户").click()
     self.driver.find_element_by_accessibility_id("立即开户")
     WebDriverWait(self.driver, 10).until(
         EC.presence_of_element_located(
             (MobileBy.ACCESSIBILITY_ID, "立即开户")))
예제 #12
0
 def verify_ok(self):
     WebDriverWait(self.driver, 10).until(
         lambda x: x.find_element(MobileBy.XPATH, "//*[@text='添加成功']"))
     sleep(3)
     return ContactListPage(self.driver)
예제 #13
0
 def click_to_logo_topmenu_item(self, driver):
     WebDriverWait(driver, 3).until(EC.presence_of_element_located(
         (By.CSS_SELECTOR, "div[class='topMenu-silpoElephant topMenu-item']"))).click()
     return self
예제 #14
0
 def click_to_my_choice_topmenu_item(self, driver):
     WebDriverWait(driver, 3).until(
         EC.presence_of_element_located((By.XPATH, self.xpath_locator_my_choise_topmenu_item))).click()
     return MyChoisePage(driver)
예제 #15
0
 def wait_selector(self,str):
     WebDriverWait(self.driver, 5).until(
         EC.element_to_be_clickable((By.CSS_SELECTOR, str))
     )
예제 #16
0
	url_request = 'http://www.recreation.gov/campsiteDetails.do?siteId={site_id}&contractCode=NRSO&parkId={park_id}&arvdate=' + ARV_DATE + '&lengthOfStay=' + LENGTH_OF_STAY

	# Check if sites are available yet - if not refresh

	# Find an available site
	selected_site = False
	
	selected_site = checksites()
	# if we've got a selected_site, automate the booking process

	if selected_site:
		# Click book button
		driver.find_element_by_id('btnbookdates').click()

		# Check to see if we got an error, if so refresh
		WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#contentArea')))
		noerrors = checkerrors();

		if (noerrors):
			# Enter username
			username_field = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#emailGroup input')))
			username_field.send_keys(USERNAME);

			# Enter password
			password_field = driver.find_element_by_css_selector('#passwrdGroup input')
			password_field.send_keys(PASSWORD);

			# Click login button
			driver.find_element_by_name('submitForm').click()

			# Check if Primary Equipment field is readonly, if not set a value
예제 #17
0
 def wait_xpath(self,str):
     WebDriverWait(self.driver,10).until(
         EC.element_to_be_clickable((By.XPATH, str))
     )
예제 #18
0
driver = webdriver.Chrome()
# 发送命令,访问HIS13登录页面
driver.get("http://10.16.0.78/his-common-test/#/home")
# 窗口最大化
driver.maximize_window()
# 点击账号输入框输入账号
driver.find_element_by_xpath('//input[@type="text"]').send_keys('9999')
# 点击密码输入框输入密码
driver.find_element_by_xpath('//input[@type="password"]').send_keys('')
# 点击登录
driver.find_element_by_xpath('//span[text()="登录"]').click()
# # 点击取消
# driver.find_element_by_xpath('//button[@class="ivu-btn ivu-btn-primary"]//span[text()="取消"]').click()
# 等待是否出现确认继续登录弹窗,若存在就点击
loc_login = (By.XPATH, '//span[text()="继续登录"]')
WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc_login))
driver.find_element(*loc_login).click()
# 选择住院收费处
# driver.find_element_by_xpath('//div[contains(text(),"住院收费处")]')
# driver.find_element_by_xpath('//div[contains(text(),"住院收费系统")]')
# loc_adress = (By.XPATH, '//div[@class="ivu-carousel-track"]//div[contains(text(),"住院收费系统")]')
# 查找住院收费处
loc_adress = (By.XPATH, '//div[contains(text(),"住院收费处")]')
# print(loc_adress)
# 等待住院收费处元素可见
WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc_adress))
# 点击住院收费处进入下一页面
driver.find_element(*loc_adress).click()
# 查找HIS13住院收费处
loc_his = (By.XPATH,
           '//div[text()="HIS13住院收费系统"]/parent::div[@class="bs_box"]')
예제 #19
0
 def verifyLinkPresenece(self, text):
     wait = WebDriverWait(self.driver, 7)
     wait.until(
         expected_conditions.presence_of_element_located(
             (By.LINK_TEXT, text)))
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import requests

options = webdriver.ChromeOptions()
# options.binary_location = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe'
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.mp3juices.cc/')
song_name = '夜的第7章'
driver.find_element_by_xpath('//*[@id="query"]').send_keys(song_name)
driver.find_element_by_xpath('//*[@id="button"]').click()

try:
    WebDriverWait(driver, 15,
                  1).until(ec.presence_of_element_located((By.ID, 'result_1')))
    driver.find_elements_by_link_text('Download')[0].click()
    WebDriverWait(driver, 15, 1).until(
        ec.presence_of_element_located((By.LINK_TEXT, 'Save to cloud')))
except Exception as ex:
    print('song not found.\n' + ex)
    driver.quit()
    exit(-1)

html = driver.execute_script(
    "return document.documentElement.outerHTML")  # 获取点击后的页面 html 源码
bs = BeautifulSoup(html, 'html.parser')
download_1 = bs.find('div', {'id': 'download_1'})
mp3_url = download_1.find_all('a')[0]['href']

try:
예제 #21
0
파일: main.py 프로젝트: timurasif/rxphoto
username.send_keys('mkelleher')
time.sleep(1)

password = driver.find_element_by_xpath('//input[@id="login_password"]')
password.clear()
password.send_keys('password')
time.sleep(2)

submit = driver.find_element_by_xpath(
    '//form[@name="loginForm"]/div[@class="uk-margin-medium-top"]/button')
submit.click()
time.sleep(250)

clients = WebDriverWait(driver, 50).until(
    EC.presence_of_all_elements_located((
        By.XPATH,
        '//tr/td[@class="mat-cell cdk-column-name mat-column-name ng-star-inserted"]/div/a'
    )))
clients_hrefs = []
for client in clients:
    clients_hrefs.append(client.get_attribute('href'))

with open('Client Info.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(
        ['Name', 'Client Id', 'DOB', 'Last visit', 'Images', 'PDFs', 'Notes'])

for href in clients_hrefs:
    driver.get(href)
    time.sleep(30)
    name = WebDriverWait(driver, 50).until(
 def wail_for_my_details_page_to_load(self):
     wait = WebDriverWait(self.driver, 30)
     wait = wait.until(expected_conditions.visibility_of)
예제 #23
0
 def mainpage(self, time=100):
     self.driver.find_element(By.XPATH, self.main_page_locator).click()
     return WebDriverWait(self.driver, time).until(
         expected_conditions.visibility_of_element_located(
             (By.XPATH, self.main_page_element)),
         message=f"Main page {self.main_page_element} has not been opened")
예제 #24
0
 def wait_for_click(self, locator, time=10):
     WebDriverWait(self._driver, time).until(
         expected_conditions.element_to_be_clickable(locator))
예제 #25
0
 def verifyLinkPresence(self, text):
     element = WebDriverWait(self.driver, 10).until(
         EC.presence_of_element_located((By.LINK_TEXT, text)))
예제 #26
0
 def wait_text(self,str):
     WebDriverWait(self.driver,10).until(
         EC.element_to_be_clickable((By.LINK_TEXT, str))
     )
예제 #27
0
 def find_elements(self, locator: tuple, time: int = 10):
     """finds elements"""
     return WebDriverWait(self.driver, time).until(EC.presence_of_all_elements_located(locator[:2]),
                                                   message=f'Не получается найти элемент {locator[2]} '
                                                           f'на странице {self.driver.current_url}')
예제 #28
0
 def wait_class_name(self,str):
     WebDriverWait(self.driver,10).until(
         EC.element_to_be_clickable((By.CLASS_NAME, str))
     )
예제 #29
0
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://mail.rediff.com/cgi-bin/login.cgi")

driver.find_element(By.NAME, 'proceed').click()

wait = WebDriverWait(driver, 10)
alert = wait.until(ec.alert_is_present())
print(alert.text)
alert.accept()
예제 #30
0
 def click_to_about_project_topmenu_item(self, driver):
     WebDriverWait(driver, 3).until(
         EC.presence_of_element_located((By.XPATH, self.xpath_locator_about_project_topmenu_item))).click()
     return AboutProjectPage(driver)