scrapy 改变国家,同时刮全球速卖通使用Python selenium

rqdpfwrv  于 2022-11-23  发布在  Python
关注(0)|答案(1)|浏览(144)

我正在做一个刮项目的全球速卖通,我想改变船到国家使用 selenium ,例如改变西班牙到澳大利亚,并点击保存按钮,然后报废的页面,我已经找到了答案,它的工作只是我不知道如何才能保存它点击按钮保存使用 selenium ,任何帮助都是非常感谢.这是我的代码用于此任务:

country_button = driver.find_element_by_class_name('ship-to')
    country_button.click()
    country_buttonn = driver.find_element_by_class_name('shipping-text')
    country_buttonn.click()     
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='address-select-item ']//span[@class='shipping-text' and text()='Australia']"))).click()
nvbavucw

nvbavucw1#

好吧,有2个弹出窗口,你需要先关闭,以访问任何其他元素。然后,你可以选择所需的装运目的地。我使用WebDriverWait的所有这些命令,使代码稳定。此外,我使用滚动滚动所需的目的地按钮,然后单击它,最后单击保存按钮。
下面的代码可以正常工作。
请注意,选择新的目的地后,弹出窗口可能会再次出现。

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
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.webdriver.common.action_chains import ActionChains

options = Options()
options.add_argument("--start-maximized")

s = Service('C:\webdrivers\chromedriver.exe')

driver = webdriver.Chrome(options=options, service=s)

url = 'https://www.aliexpress.com/'

wait = WebDriverWait(driver, 10)
actions = ActionChains(driver)
driver.get(url)

try:
    wait.until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@style,'display: block')]//img[contains(@src,'TB1')]"))).click()
except:
    pass

try:
    wait.until(EC.element_to_be_clickable((By.XPATH, "//img[@class='_24EHh']"))).click()
except:
    pass
wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "ship-to"))).click()

wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "shipping-text"))).click()

ship_to_australia_element = driver.find_element(By.XPATH, "//li[@class='address-select-item ']//span[@class='shipping-text' and text()='Australia']")
actions.move_to_element(ship_to_australia_element).perform()
time.sleep(0.5)
ship_to_australia_element.click()

wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@data-role='save']"))).click()

这里我主要使用XPath定位器,也可以使用CSS选择器

相关问题