python - 变量值不会在 Python 的 while 循环中得到更新 - selenium
问题描述
我正在尝试加载更多元素并滚动加载更多元素(无限滚动,其中元素作为滚动加载)
问题:jobCards 值仅更改一次,然后即使循环再次运行也不会更改,如果在 while 循环运行之前为其分配了任何值,甚至不会更改一次
def totalJobs(self,):
jobCards = self.find_elements_by_css_selector(
'div[class^="job-cardstyle__JobCardHeader"]')
return jobCards
while True:
time.sleep(10)
jobCards = self.totalJobs()
print("Total Jobs - " + str(len(jobCards)))
self.execute_script(
"arguments[0].scrollIntoView({behavior: 'smooth',block: 'center'});", jobCards[len(jobCards)-1])
#Some break Condition based on len(jobCards)
解决方案
变量jobCards
每次都被重新定义。而且您只是调用该函数而不添加之前的长度jobCards
。
尝试如下并确认:
jobCards = [] # Make "jobCards" a class variable
def totalJobs(self,templist):
templist = self.find_elements_by_css_selector('div[class^="job-cardstyle__JobCardHeader"]')
return templist
while True:
time.sleep(10)
jobCards = jobCards + self.totalJobs(templist = []) # Keeping adding new length to previous one.
print("Total Jobs - " + str(len(jobCards)))
driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth',block: 'center'});", jobCards[len(jobCards)-1])
#Some break Condition based on len(jobCards)
推荐阅读
- bash - 使用目录 bash 更改别名
- python - Pyinstaller 可执行文件找不到包含的“flask-compress”分发
- r - 连续生成多元素向量进行加法
- azure-log-analytics - 通过所有表进行 Azure Kusto 语言查询
- r - “ gam模型安装出错?”
- swift - 快速搜索 UIScrollView 以获取具有特定属性的 UIImageView
- python - 如何使用 Python 从 Google Classroom 获取作业标题
- backup - cpanel 备份 'cpbackup-exclude.conf' 排除除 .php 和 .js 之外的所有文件
- html - React Native - 样式在多个设备上不一致
- svg - 尝试在 svg 中使用 mathjax