无法模拟内部使用Selenium webdriver的标签,蟒蛇
问题描述:
我想在下面的标签无法模拟内部使用Selenium webdriver的<span>标签,蟒蛇
跨度类= “taLnk hvrIE6 tr165579546 moreLink ulBlueLinks” 的onclick =“ta.util.cookie模拟onclick事件的onclick的JavaScript。 setPIDCookie(2247); ta.call('ta.servlet.Reviews.expandReviews',event,this,'review_165579546','1',2247)“> 更多
这是用来在这个下面看到更多的文字link.I使用硒webdriver和python模拟这个事件自动为这个网页 http://www.tripadvisor.in/Hotel_Review-g297586-d1154547-Reviews-Rainbow_International_Hotel-Hyderabad_Telangana.html这个网页。
任何人都可以共享一个代码片段,以actiavet此JavaScript事件,以便页面加载,我可以看到整个文本下的链接自动...我尝试使用selenium webdriver的点击()选项,但它没有工作。
答
这并获得成功对我来说:
from selenium import webdriver
url = 'http://www.tripadvisor.in/Hotel_Review-g297586-d1154547-Reviews-Rainbow_International_Hotel-Hyderabad_Telangana.html'
browser = webdriver.Firefox()
browser.get(url)
li = browser.find_element_by_css_selector('#PERSISTENT_TAB_HR .tabs_pers_content li:nth-child(2)')
li.click()
答
这里,你可能会开始的想法:
- 遍历网页上的所有评论(div元素与
id
开始review_
) - 对于每个评论,点击
More
链接如果它存在(范围与moreLink
类名称) - 小的延迟之后,得到充分的评论文章
这里的实现:
import time
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get("http://www.tripadvisor.com/Hotel_Review-g297586-d1154547-Reviews-Rainbow_International_Hotel-Hyderabad_Telangana.html")
for review in driver.find_elements_by_xpath('//div[starts-with(@id, "review_")]'):
try:
more = WebDriverWait(review, 3).until(EC.presence_of_element_located((By.CLASS_NAME, 'moreLink')))
if more.is_displayed():
more.click()
time.sleep(1)
except (NoSuchElementException, TimeoutException):
pass
full_review = review.find_element_by_class_name('dyn_full_review')
print full_review.text
print "----"
打印(输出包含每个评论中的所有文本,包括用户名和日期):
Mustufa W
1 review
“Horrible”
Reviewed August 15, 2014
I checked on price was high but cracked a deal
Poor hygiene in corridor & so in rooms. Washroom pipes were leaking. AC water dripping in washroom.
First I was given a room to which my surprise found window pane was missing after complaining room got changed.
They are cheating ppl only good thing abt hotel is the spot & is damn opposite Nilofer cafe which serves delicious tea,coffee & bakery products.
There is a guy named khwaja who was very helpful. Front @ reception guy was stupid..in one midnight , power went off & to my surprise they don't have power back up..
Stayed August 2014, traveled as a couple
Less
Was this review helpful?
Yes
Ask Mustufa W about Rainbow International Hotel
This review is the subjective opinion of a TripAdvisor member and not of TripAdvisor LLC.
----
mrravi4u
Bangalore, India
2 reviews
13 helpful votes
“Good Hotel”
Reviewed April 23, 2014
I stayed there 2 days i got good services. Rainbow Is good hotel in Hyderabad. there are very homely environment and hosting services was supper. it is also in center of hyderabad city so for convenience is is better place to stay.
Room Tip: Office Meeting
See more room tips
Stayed March 2014, traveled with friends
Value
Location
Sleep Quality
Rooms
Cleanliness
Service
Was this review helpful?
Yes
13
Ask mrravi4u about Rainbow International Hotel
This review is the subjective opinion of a TripAdvisor member and not of TripAdvisor LLC.
----
...
希望能让事情变得更加清晰。