在我使用selenium爬取搜狗搜索时,在我定位到一个元素时,调用click方法点击,click方法没有生效,但是代码也没有报错,下面附上代码
```python
import re
import time
from random import randint
from selenium.webdriver import ActionChains
import requests
from selenium import webdriver
headers = {
'cookie': 'xhsTrackerId=6c63302a-1349-481c-c87a-f844732b059a; extra_exp_ids=gif_exp1,ques_clt2; timestamp2=20210825200f5d61b66e3e6fd1020308; timestamp2.sig=uCH6dtCc1XYVK_M7-ATZCZtfP_vaKANJqMewd__gXWA',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
}
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('https://www.sogou.com/')
time.sleep(1)
srk = driver.find_element_by_id('query')
srk.clear()
srk.click()
srk.send_keys('医院')
time.sleep(1)
su = driver.find_element_by_id('stb')
su.click()
time.sleep(3)
for q in range(5):
link = driver.find_elements_by_xpath('//*[@id="main"]//div[contains(@class,"vrwrap")]')
url_list = []
for y in link:
g = y.find_elements_by_xpath('./h3/a')
if g:
for o in g:
a = o.get_attribute('href')
if a is not None:
b = requests.get(url=a, headers=headers).text
# js重定向,提取出真实的url
h = list(set(re.findall('[a-zA-z]+://[^\s]*["$]', b)))[0][:-2]
if h[-1:] == '"':
h = h[:-1]
url_list.append(h)
else:
url_list.append('0')
else:
url_list.append('0')
print(url_list)
for k in url_list:
if '//yy.69jk.cn' in k:
s = url_list.index(k)
try:
pink = driver.find_element_by_xpath('//*[@id="main"]/div[3]/div/div[%s]' % (s + 1))
except:
pink = driver.find_element_by_xpath('//*[@id="main"]/div[3]/div/div[%s]' % (s + 1))
# 这里问题,无法点击元素
ActionChains(driver).move_to_element(pink).click().perform()
time.sleep(1)
for i in range(3):
v = driver.find_elements_by_tag_name("a")
for c in v:
c.click()
time.sleep(randint(1, 5))
driver.back()
time.sleep(1)
all_pages = driver.window_handles # 获得所有窗口句柄
driver.switch_to.window(all_pages[-1])
time.sleep(randint(1, 5))
c = driver.current_url
time.sleep(1)
driver.quit()
break
else:
pink = driver.find_element_by_xpath('//*[@id="sogou_page_%s"]' % (q + 2))
pink.click()
time.sleep(3)
```