python - 循环直到页面上的消息更改硒python
问题描述
我有一个从页面中提取值的刮板。在这个站点中,我有一个按钮可以传递给下一个值并更新页面上的数据。当没有更多值要提取时,页面会在页脚中显示一条消息。我需要重复这个循环,直到出现消息。
该消息有两个可能的值,当值更改为特定消息时,我需要转到另一个页面并发送其他值。我的问题是我不知道如何重复循环,直到值发生变化,因为每次我重复循环时页面都会更新,或者换句话说,消息是动态的。当值更改时,我不会提取值并发送我在 Excel 工作表中拥有的新值。
我尝试这样做,但它不起作用:
#with open("Output.txt", "a") as text_file:
for x in range (2,9):
inputrut = driver.find_element_by_xpath("""//*[@id="BodyText"]/input[1]""")
inputrut.clear()
rutvalue= ws.cell(row=x, column=1).value
dvvalue= ws.cell(row=x, column=2).value
inputrut.send_keys(str(rutvalue)+"-"+str(dvvalue))
driver.find_element_by_xpath("""//*[@id="MenuTable"]/tbody/tr[2]/td/input""").click()
mensaje = driver.find_element_by_xpath("""//*[@id="FootText"]""").get_attribute("innerHTML")
print (mensaje)
if mensaje !=" ?don't have values":
print(x)
mensajeproximo = driver.find_element_by_xpath("""//*[@id="FootText"]""").get_attribute("innerHTML")
mensajeproximo3 = " ?dont have more values"
while mensajeproximo != mensajeproximo3:
print("next "+mensajeproximo)
extractvalues(driver)
driver.find_element_by_xpath("""//*[@id="MenuTable"]/tbody/tr[3]/td/input""").click()
else:
print("new value")
driver.find_element_by_xpath("""//*[@id="MenuTable"]/tbody/tr[3]/td/input""").click()
else:
text_file = open("Output.txt", "a")
text_file.write(str(rutvalue)+"-"+str(dvvalue)+"NO REGISTRA"+'\n')
print("no values")
driver.find_element_by_xpath("""//*[@id="MenuTable"]/tbody/tr[3]/td/input""").click()
循环的问题在哪里?
问候
解决方案
这是循环的代码:
while True:
if driver.find_element_by_xpath("""//*[@id="FootText"]""").get_attribute("innerHTML") == mensajeproximo2:
print("next")
extractvalues(driver)
driver.find_element_by_xpath("""//*[@id="MenuTable"]/tbody/tr[3]/td/input""").click()
time.sleep(1)
else:
message =driver.find_element_by_xpath("""//*[@id="FootText"]""").get_attribute("innerHTML")
print("new value"+message)
driver.find_element_by_xpath("""//*[@id="MenuTable"]/tbody/tr[3]/td/input""").click()
time.sleep(1)
break
推荐阅读
- loops - 在 Fortran 模块中使用变量时出错
- excel - VBA代码:根据表单中输入的url将图像插入单元格
- webots - Webots:机器人模拟器
- google-cloud-platform - 如何将 Secure Shell 应用程序连接到 Google Cloud VM 实例
- apache-beam - WriteToBigQuery 表 ValueProvider 问题
- java - Java URL 构造函数允许使用空格
- javascript - 当我使用“useCallback”时,我得到一个 TypeError 错误
- r - 仅缩放和绘制给定树状图的特定节点
- c - .exe 文件无法正确执行
- javascript - Google 工作表/javascript 未按预期评估日期