selenium 寻找一种方法来捕获元素在使用Selify输入后的更新文本

ymdaylpp  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(174)

我一直在创建一个使用Selify的网络摩天大楼,它将选择几个项目,装满一辆购物车,然后在邮政编码、城市和州的列表中循环,以计算各种地点的总成本+运费+税费。
刮板已经成功设置并正常工作,但我遇到的问题是,我正在搜索的元素的文本给出了基本价格,然后更新为包括税收和运输。我曾尝试使用隐式的等待或time.Sept()来减慢进程的速度,以便有时间进行更新,但它仍然只能获得原始价格。在不放入整个脚本的情况下,这就是我遇到的情况:

for item in c_s_z_list:
                cty = driver.find_element(By.CSS_SELECTOR, 'input[id="city"]')
                cty.clear()
                time.sleep(1)
                cty.send_keys(item[0]) 

                dropdown1 = Select(driver.find_element(By.CSS_SELECTOR,'select[id="state"]'))
                dropdown1.select_by_visible_text(item[1])

                zcode = driver.find_element(By.CSS_SELECTOR,'input[id="zip"]')
                zcode.clear()
                time.sleep(1)
                zcode.send_keys(item[2]) 

                time.sleep(20)

                fpt = driver.find_element(By.CSS_SELECTOR,'span[class="order-wizard-cart-summary-grid-right"]')
                fp = fpt.text
                print(fp)

在输入城市、州和邮政编码信息之前,html如下所示:

添加信息后,它会更新为:

即使在为页面加载提供了足够的休眠之后,element.text也总是返回初始值,而不是更新后的值。
我尝试过等待,睡觉,甚至是提神醒脑,看看这些是否有什么不同,但到目前为止还没有什么影响
这是主登录页面
https://www.performbetter.com/First-Place-Gravity-Kettlebell
这是购物车的特定页面
Https://checkout.performbetter.com/sca-dev-vinson/checkout.ssp?is=checkout&fragment=opc&_ga=2.53878443.2036683866.1667331254-1479525696.1666912626#opc

6za6bjd0

6za6bjd01#

您的定位器值有两个匹配项,因此它返回小计,将定位器值更改为:

driver.find_element(By.CSS_SELECTOR,'.order-wizard-cart-summary-total .order-wizard-cart-summary-grid-right')

相关问题