如何使用Python + Selenium生成随机单词或数字?

时间:2019-04-21 07:07:18

标签: python selenium google-chrome

我有一个将消息发送到多个配置文件的代码,但是我不能两次发送相同的消息。我希望我可以随信息生成一个随机数或单词来避免这种情况。

这是整个代码:

#import libraries
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import os
import time

myText = """[centro]
[quote=@sadbates]Não se assuste, meu amor, é apenas divulgação de uma história interativa.[/quote]
[spoiler=

[img]https://i.imgur.com/G7Qttqf.png[/img]]
Quando um grupo clichê de amigos viaja para uma previsível casa de campo onde um deles planeja uma festa apocaliptica e um fim de ano de matar, nada pode pará-los ou tirar seus animos.

[img]https://i.imgur.com/ND3zM3l.gif[/img]

Os dias são bonitos, perfeitos e gloriosos. Uma das melhores épocas do ano que está sendo aproveitada com a melhor elite burguesa que se poderia imaginar. 

[img]https://i.imgur.com/zFC8y1s.gif[/img]

Até que em uma noite clichê, em uma mansão clichê e com uma festa clichê, uma das garotas é encontrada morta, com o pescoço dilacerado e afundando-se nas correntezas de um lago. 

[img]https://i.imgur.com/4QwrNTq.gif[/img]

E agora, o verão perfeito, com as pessoas perfeitas e com as férias perfeitas, se torna em um ninho de conspirações para uma dos mais controversos e misteriosos casos de assassinato da história da humanidade até então. Todos são suspeitos, todos tem algo para esconder.

[img]https://i.imgur.com/PDAKZ6Q.gif[/img]

E os poucos que se salvam, devem lutar para escapar desta dança macabra, criada pelo próprio diabo e que está a cada dia mais devota por novas vítimas. Você está à mercê de todo o mal que por ti mesmo foi criado, prestes a ser afundado por escuridão ou seus próprios segredos, antes que ambos terminem te sufocando.

[img]https://i.imgur.com/l6Sc0P2.gif[/img]

[i]os teasers abaixo estão com o título diferente porque a história trocou de nome[/i]
[youtube]https://www.youtube.com/watch?v=y-nxG0SyEHE[/youtube]
[youtube]https://www.youtube.com/watch?v=5I-zoFxmNfc[/youtube]

essa promo abaixo é apenas representativa, eu remontei um teaser da série Sabrina.
é só pra te dar uma ambientação sobre o enredo e tal.
[youtube]https://www.youtube.com/watch?v=30MkWlksbzA[/youtube]
[url=https://www.spiritfanfiction.com/historia/callyara-interativa-16315739][b]Clique aqui para ler![/b][/url] 
[/spoiler]
[/centro]")"""

# set options for web driver
option = webdriver.ChromeOptions()
chrome_prefs = {}
option.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}
chrome_prefs["profile.default_content_settings"] = { "popups": 2 }
option.add_argument("--disable-notifications")

driver = webdriver.Chrome(chrome_options=option)
driver.get('https://www.spiritfanfiction.com/login')

driver.find_element_by_xpath("//*[@id='Usuario']").send_keys("breakfast")
driver.find_element_by_xpath("//*[@title='Senha']").send_keys("302290679")
driver.find_element_by_xpath("//*[@class='btn btn-primary']").send_keys("302290679")
driver.find_element_by_xpath("//*[@class='btn btn-primary']").click()

LinkDoPerfil = driver.get("https://www.spiritfanfiction.com/recentes?pagina=1000")
transactionElements = driver.find_elements_by_xpath("//*[@class='usuario usuarioPopupTrigger link']")
for element in transactionElements:
            ActionChains(driver) \
                .key_down(Keys.CONTROL) \
                .click(element) \
                .key_up(Keys.CONTROL) \
                .perform()

# Store all the tabs in the variable
tabs = driver.window_handles
# Switch to each tab opened one by one
while True:
    for x in tabs[1:]:
        driver.switch_to_window(x)
    try:
            driver.find_element_by_xpath('//*[@class="fa fa-eye"]').click()
            checkbox = driver.find_elements_by_xpath("//*[@checked='checked']")
            for element in checkbox:
                element.click()
            driver.find_element_by_xpath("//*[@class='btn btn-success']").click()
            time.sleep(2)
            driver.find_element_by_xpath("//*[@class='fa fa-envelope']").click()
            driver.find_element_by_xpath("//*[@id='cphConteudo_cphConteudo_txtMensagemTitulo']").send_keys("Nós podemos te ajudar. Nós podemos te libertar.")
            driver.find_element_by_xpath("//*[@id='cphConteudo_cphConteudo_txtMensagemTexto']").send_keys(myText)
            driver.find_element_by_xpath("//*[@id='cphConteudo_cphConteudo_btnEnviar']").click()
            driver.close()
    except:
            driver.close()
    x += 1
    driver.find_element_by_xpath("//*[@class='fa fa-caret-left']").click()

这些是我要生成数字的行:

driver.find_element_by_xpath("//*[@id='cphConteudo_cphConteudo_txtMensagemTitulo']").send_keys("Nós podemos te ajudar. Nós podemos te libertar.")
            driver.find_element_by_xpath("//*[@id='cphConteudo_cphConteudo_txtMensagemTexto']").send_keys(myText)

随机单词甚至其他标题或消息也将有所帮助。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这里有很多代码。

在不消化所有这些情况的情况下,想到的一个想法是在randint模块中使用Python random函数。您可能会创建一个随机数,将其转换为字符串,然后将该字符串与文本(myText)连接起来。

import random
rnd_value = str(random.randint(1, 100000))
myText = myText + rnd_value

或者,如果您更喜欢使用单词,则可以使用choice函数:

words = [<word1>, <word2>, <word3>, ... <word100000>]
rnd_word = random.choice(words)
myText = myText + rnd_word