Can1234444
Femtopat
- Katılım
- 2 Temmuz 2023
- Mesajlar
- 1
Daha fazla
- Cinsiyet
- Erkek
Python webdriver pop up çıkıyor.
WhatsApp'da toplu mesaj gönderme botu yapmaya çalışıyorum ama API. WhatsApp sitesinde pop up çıktığı için işlemler devam edemiyor kodlarım böyle.
WhatsApp'da toplu mesaj gönderme botu yapmaya çalışıyorum ama API. WhatsApp sitesinde pop up çıktığı için işlemler devam edemiyor kodlarım böyle.
Python:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QTableWidget, QTableWidgetItem, QHBoxLayout, QLabel,QMessageBox
from PyQt5.QtCore import QUrl, Qt.
from selenium import webdriver.
from selenium.webdriver.support.ui import WebDriverWait.
from selenium.webdriver.support import expected_conditions as EC.
from selenium.webdriver.common.by import By.
from selenium.webdriver.common.alert import Alert.
import sys.
import json.
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Wp bot')
self.setGeometry(300, 300, 900, 600)
self.layout = QVBoxLayout()
self.table = QTableWidget()
self.table.setRowCount(30)
self.table.setColumnCount(3)
self.table.setHorizontalHeaderLabels(['Ad Soyad', 'Tel No', 'Mesaj'])
self.load_data()
self.layout.addWidget(self.table)
button_layout = QHBoxLayout()
self.button = QPushButton('İşlem')
self.button.clicked.connect(self.on_button_click)
button_layout.addWidget(self.button)
self.save_button = QPushButton('Kaydet')
self.save_button.clicked.connect(self.save_data)
button_layout.addWidget(self.save_button)
self.layout.addLayout(button_layout)
self.setLayout(self.layout)
self.table.setSizeAdjustPolicy(QTableWidget.AdjustToContents)
self.table.horizontalHeader().setStretchLastSection(True)
chrome_options = webdriver.ChromeOptions()
self.driver = webdriver.Chrome(options=chrome_options)
self.driver.get('https://web.whatsapp.com')
self.show_message('QR kodunu tarayın ve giriş yapın. İşleme başlamak için "İşlem" düğmesine tıklayın')
def load_data(self):
try:
with open('data.json', 'r') as f:
data = json.load(f)
for i, row in enumerate(data):
for j, value in enumerate(row):
item = QTableWidgetItem(value)
self.table.setItem(i, j, item)
except FileNotFoundError:
pass.
def save_data(self):
data = []
for row in range(self.table.rowCount()):
row_data = []
for col in range(self.table.columnCount()):
item = self.table.item(row, col)
row_data.append(item.text() if item else '')
data.append(row_data)
try:
with open('data.json', 'w') as f:
json.dump(data, f)
self.show_message('Bilgiler başarıyla kaydedildi')
except IOError:
self.show_message('Bilgiler kaydedilirken bir hata oluştu')
def on_button_click(self):
for row in range(self.table.rowCount()):
tel_item = self.table.item(row, 1)
mesaj_item = self.table.item(row, 2)
if tel_item and mesaj_item and tel_item.text() and mesaj_item.text():
tel_no = tel_item.text()
mesaj = mesaj_item.text()
url = f"https://api.whatsapp.com/send?phone={tel_no}&text={mesaj}"
self.driver.get(url)
try:
action_button = WebDriverWait(self.driver, 60).until(
EC.presence_of_element_located((By.ID, "action-button"))
)
action_button.click()
next_button = WebDriverWait(self.driver, 60).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "a._9vcv._9vcx"))
)
next_button.click()
send_button = WebDriverWait(self.driver, 60).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "button.x1c4vz4f.x2lah0s.xdl72j9.xfect85.x1iy03kw.x1lfpgzf"))
)
send_button.click()
except:
pass.
def show_message(self, message):
message_box = QMessageBox()
message_box.setText(message)
message_box.exec_()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Dosya Ekleri
Son düzenleyen: Moderatör: