在python中自动重定向之前使用selenium捕获源代码

问题描述 投票:0回答:2

请看以下页面:https://www.cvs.com/shop/advil-pain-reliever-fever-reducer-ibuprofen-tablets-200mg-prodid-1040240?skuid=420321

选择不同的格式(如100 CT)时,会显示新价格。复制该URL并导航到它,注意它重定向回原始的10 CT页面。

我想得到100 CT页面上的价格。

这是我的代码,它点击了正确的格式,但是当我尝试重新获取网址时,我仍然可以获得10个CT页面。

    format_header =  browser.find_element_by_css_selector("ul.--horizontalScroll.gbcvs-c-variantSelectorList")
    items = format_header.find_elements_by_tag_name('li')

    format_count = 1
    for item in items:
        text = item.text
        if(text == '100 CT'):
            break
        else: 
            format_count += 1

    browser.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Count:'])[1]/following::label["+str(format_count)+"]").click()

    print(browser.current_url)

    browser.get(browser.current_url)
python selenium url-redirection
2个回答
1
投票

这是运行并正确找到价格的代码。你可以通过使用print (driver.find_element_by_css_selector("p.shoppdp-c-productPricing__actual").text) enter image description here来获得价格

这是wait_until_element_not_present的方法代码

def wait_until_element_not_present(locator_type,locator):
    if locator_type == 'xpath':
        WebDriverWait(driver, 10).until_not(EC.presence_of_element_located((By.XPATH, locator)))
    elif locator_type == "css":
        WebDriverWait(driver, 10).until_not(EC.presence_of_element_located((By.CSS_SELECTOR, locator)))

0
投票

@ supputuri的答案是正确的,只有我用以下内容替换了wait_until_element_not_present

    WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, "gbcvs-c-addToCart__inner"))
    )
© www.soinside.com 2019 - 2024. All rights reserved.