我正在尝试随机单击此 page 上所有未打开的选项卡(元素) .
但不幸的是,下面的方法似乎可行,使用这种方法似乎无法单击所有元素。我假设出于某种原因它不喜欢索引中的索引(或者没有正确加载所有索引)。添加 while True:
可以解决这个问题,但我不确定如何随机化无限量。有什么想法吗?
options = driver.find_elements_by_xpath('//*[@class="KambiBC-mod-event-group-header__event-count"]')
indexes = [index for index in range(len(options))]
shuffle(indexes)
for index in indexes:
time.sleep(1)
clickMe = wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,'(//*[@class="KambiBC-mod-event-group-header__event-count"])[%s]' % str(index + 1))))
driver.execute_script("arguments[0].scrollIntoView();", clickMe)
clickMe.click()
time.sleep(1)
添加 while True:
while True:
time.sleep(0)
#clickMe = wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,'(//*[@class="KambiBC-mod-event-group-header__event-count"])[%s]' % str(index + 1))))
clickMe = wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '(//*[@class="KambiBC-mod-event-group-header__event-count"])[%s]' % str(index + 1))))
driver.execute_script("arguments[0].scrollIntoView();", clickMe)
clickMe.click()
time.sleep(0)
最佳答案
不是所有的选项都同时出现,而是一个接一个的添加。
您需要等到所有选项都可用。
试试下面的代码:
def get_options_length():
list_length = len(wait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, '//*[@class="KambiBC-collapsible-header KambiBC-mod-event-group-header"]'))))
while True:
time.sleep(1)
if list_length == len(driver.find_elements_by_xpath('//*[@class="KambiBC-collapsible-header KambiBC-mod-event-group-header"]')):
break
else:
list_length = len(driver.find_elements_by_xpath('//*[@class="KambiBC-collapsible-header KambiBC-mod-event-group-header"]'))
return list_length
indexes = [index for index in range(get_options_length())]
shuffle(indexes)
for index in indexes:
time.sleep(1)
clickMe = wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,'(//*[@class="KambiBC-collapsible-header KambiBC-mod-event-group-header"])[%s]' % str(index + 1))))
clickMe = clickMe.find_element_by_xpath('.//span')
driver.execute_script("arguments[0].scrollIntoView();", clickMe)
clickMe.click()
关于python - 随机点击无限量的所有选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47090423/