foo = ['hello', 'hi', 'sup', 'hey', 'yo']
def main():
actions = ActionChains(driver)
with open('links.txt', 'r') as f:
urls = []
for url in f:
rand = random.choice(foo)
driver.get(url)
time.sleep(3)
driver.execute_script("window.scrollTo(0, 200)")
time.sleep(1)
try:
driver.find_element_by_class_name('comment-simplebox-renderer-collapsed-content').click()
actions.send_keys(rand)
actions.perform()
driver.find_element_by_xpath("""//*[@id="comment-simplebox"]/div[3]/div[2]/button[2]""").click()
time.sleep(3)
except NoSuchElementException:
pass
不是选择foo列表中的随机字符串,而是第一次选择随机字符串,第二次选择第一个字符串并添加另一个随机字符串。所以它只是为rand变量添加字符串而不是覆盖它。我该如何解决这个问题?
我尝试向上移动rand变量,但这不起作用。
答案 0 :(得分:0)
这与random.choice
无关。
您滥用ActionChains
对象:
当您在ActionChains对象上调用操作方法时,操作将存储在ActionChains对象的队列中。当您调用perform()时,事件将按照它们排队的顺序触发。
每次调用actions.send_keys(rand)
时,都会向队列添加更多操作。调用actions.perform()
并不会清除操作队列。