JD酒店—selenium

############# 第一种################

from seleniumimport webdriver

import time

#打开浏览器

driver = webdriver.Edge()

#设置最大化

driver.maximize_window()

#设置隐式等待

driver.implicitly_wait(20)

#打开网页

driver.get("https://www.jd.com/")

#点击 酒店

driver.find_element_by_css_selector('.service_ico_jiudian').click()

#会打开两个标签页,所以进行窗口切换

all_hendle = driver.window_handles

driver.switch_to.window(all_hendle[1])

#关闭广告 不关闭广告会在选择日期的时候,遮挡日期元素

driver.find_element_by_css_selector('.close').click()

time.sleep(2)

#选择目的地

city = driver.find_element_by_id('city')

city.clear()#清除默认自选的城市

city.send_keys("西安")

#选择输入 西安下拉的第一个选项

driver.find_element_by_xpath("//ul[@class='suggest-ul']/li[1]").click()

#入住时间

driver.find_element_by_id('dateStart').click()

#从 10号开始

driver.find_element_by_css_selector('.ui-calendar-3>div:last-child tbody>tr:nth-child(3)>td:nth-child(2)').click()

#

time.sleep(1)

#离店

driver.find_element_by_id('dateEnd').click()

#选择14号

driver.find_element_by_css_selector('.ui-calendar-4>div:nth-last-child(2) tbody>tr:nth-child(3)>td:nth-child(6)').click()

#选择 商圈

driver.find_element_by_id('hotelKeys').send_keys("钟楼")

driver.find_element_by_css_selector('li[data-name="西安钟楼民宿"]').click()

#点击 搜索酒店

driver.find_element_by_id('searchBtn').click()

time.sleep(2)

#获取酒店的详细信息

for elementin driver.find_elements_by_css_selector('.search-result>div'):

print(element.text)

print("***************************")




################第二种###############

from seleniumimport webdriver

from selenium.webdriver.common.action_chainsimport ActionChains

import time

# 打开浏览器

driver = webdriver.Chrome()

# 最大化窗口

driver.maximize_window()

# 隐式等待

driver.implicitly_wait(10)

# 打开网址

driver.get("https://www.jd.com")

# 获得当前窗口句柄

start_handle = driver.current_window_handle

# 点击酒店

driver.find_element_by_xpath("//span[text()='酒店']").click()

# 查看所有窗口并切换窗口

all_hands = driver.window_handles

driver.switch_to.window(all_hands[1])

time.sleep(2)

# 关闭广告

driver.find_element_by_xpath('//i[@class="close"]').click()

# 选择城市

driver.find_element_by_xpath('//input[@placeholder="目的地"]').click()

# 选择西安

driver.find_element_by_xpath("//a[text()='西安']").click()

# 选择入住日期

# js1 = 'document.getElementById("dateStart").removeAttribute("readonly");'

# driver.execute_script(js1)

# start = driver.find_element_by_id("dateStart")

# start.clear()

# start.send_keys("2021-05-13")

driver.find_element_by_id('dateStart').click()

driver.find_element_by_xpath("//td[@data-currday='2021-05-13']").click()

# 选择离店日期

# js2 = 'document.getElementById("dateEnd").removeAttribute("readonly");'

# driver.execute_script(js2)

# start = driver.find_element_by_id("dateEnd")

# start.clear()

# start.send_keys("2021-05-16")

driver.find_element_by_id('dateEnd').click()

time.sleep(2)

driver.find_element_by_xpath("(//td[@data-currday='2021-05-15'])[2]").click()

js3 ='document.getElementsByClassName("tab-tit")[2].scrollIntoView({block: "end", behavior: "smooth"})'

driver.execute_script(js3)

# 选择商圈 钟楼广场

# 冻结元素setTimeout(function(){debugger},5000)

driver.find_element_by_id('hotelKeys').send_keys("钟楼")

time.sleep(1)

ele = driver.find_element_by_xpath('//li[contains(@data-val,"钟楼")][2]')

# ActionChains(driver).move_to_element(ele).perform()

driver.execute_script("arguments[0].click();",ele)

# 搜素酒店

driver.find_element_by_id('searchBtn').click()

# 选择价格区间

driver.find_element_by_xpath('//input[@data-start="400"]').click()

# 星级房

driver.find_element_by_xpath('(//input[@data-id="5"])[1]').click()

time.sleep(3)

# 标题

title_ele = driver.find_elements_by_css_selector('.search-result>div')

for elementin title_ele:

print(element.text)

driver.quit()

你可能感兴趣的:(JD酒店—selenium)