我正在尝试使用Selenium编写脚本,该脚本将在特定链接上输入每个添加,然后在每个广告页面中单击按钮。我无法让脚本确定如何转到一个广告,然后再转到另一个广告。有问题的链接是
因此,这是帖子列表: [![在此处输入图片描述] [1]] [1]
该脚本应输入添加,点击回复按钮,然后移至另一个添加。 [![在此处输入图片描述] [2]] [2] 这是到目前为止我可以做的以下脚本:
config = ConfigParser()
driver=webdriver.Chrome(executable_path="C:/Users/User/Desktop/script/chromedriver.exe")
config.read('settings.ini')
link1 = config['Links']['key1']
for each_section in config.sections():
for(each_key, each_val) in config.items(each_section):
driver.get(each_val)
element = driver.find_elements_by_class_name("rows")
for items in element:
elem = items.find_elements_by_class_name("result-row")
elem.click()
答案 0 :(得分:2)
首先在href
中捕获所有广告list
的值,然后在iterate
中导航每个广告页面,然后单击“答复”按钮。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://cnj.craigslist.org/search/mob")
links=WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,"ul.rows a.result-title.hdrlnk")))
adslinks=[link.get_attribute("href") for link in links]
for ads in adslinks:
#navigate each add link
driver.get(ads)
#Click on Reply button
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.reply-button.js-only"))).click()
点击gmail链接更新答案。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://cnj.craigslist.org/search/mob")
links=WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,"ul.rows a.result-title.hdrlnk")))
adslinks=[link.get_attribute("href") for link in links]
for ads in adslinks:
driver.get(ads)
#Click on Reply button
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.reply-button.js-only"))).click()
#Click on Gmail
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.reply-email.gmail"))).click()
#Pause few seconds to check
time.sleep(2)
#move to new window for gmail account
driver.switch_to.window(driver.window_handles[-1])
#Perform your operation here
#Close the new window
driver.close()
# Pause few seconds to check
time.sleep(0.5)
driver.switch_to.window(driver.window_handles[-1])