选择不同的格式(如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)
这是运行并正确找到价格的代码。你可以通过使用print (driver.find_element_by_css_selector("p.shoppdp-c-productPricing__actual").text)
来获得价格
这是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)))
@ supputuri的答案是正确的,只有我用以下内容替换了wait_until_element_not_present
WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "gbcvs-c-addToCart__inner")) )