引发超时异常(消息,屏幕,堆栈)selenium.com.mon.exeptions.TimeoutException:



我正试图在Windows7上用Python运行以下代码。

我收到以下错误。

Traceback(最后一次调用(:文件";C: \Users\Yogesh Wadhwa\Desktop\whatsapp 2.py";,第41行,ingroup_title=等待,直到(EC.presence_of_element_located((文件";C: \Users\Yogesh Wadhwa\AppData\Local\Programs\Python38-32\lib\site packages\selenium\webdriver\support\wait.py",第80行,直到引发超时异常(消息、屏幕、堆栈(selenium.com.mon.exceptions.TimeoutException:消息:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import sys
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import datetime
import time
import openpyxl as excel

driver = webdriver.Chrome("C:\Users\Yogesh Wadhwa\AppData\Local\Programs\Python\Python38-32\chromedriver.exe")
def readContacts(fileName):
lst = []
file = excel.load_workbook(fileName)
sheet = file.active
firstCol = sheet['A']
for cell in range(len(firstCol)):
contact = (firstCol[cell].value).encode('utf-8')
lst.append(contact)
return lst

targets = readContacts("C:\Users\Yogesh Wadhwa\AppData\Local\Programs\Python\Python38-32\HNI.xlsx")
#print(targets)
driver.get("https://web.whatsapp.com/")
wait = WebDriverWait(driver, 600)
wait5 = WebDriverWait(driver, 5)
msg = input('Enter the message : ')
#targets =['Mona 1','School']
for target in targets:
x_arg = '//span[contains(@title,' +'"' +target.decode('utf-8') + '"' +')]' #.decode('utf-8') 
group_title = wait.until(EC.presence_of_element_located((
By.XPATH, x_arg)))
group_title.click()

message = driver.find_element_by_class_name('_2EoyP')
message.send_keys(msg)
sendbutton = driver.find_element_by_class_name('_2FVVk')    
sendbutton.click()
time.sleep(5)
driver.close()

当您使用显式等待时,它会将问题隐藏在超时错误中。你无法判断它是没有找到你的对象,还是花了很长时间才出现。

对你的代码很少有想法:

  • 您的XPath看起来不对。你至少少了一个方括号。试试这个,而不是代码中的那个:

'//span[contains(@title,"' +target + '" )]'

  • 我建议您在运行时验证x_arg的值。把它打印出来,这样你就可以确保字符串如你所期望的那样。

  • 只有取消对targets数组的注释,代码才能正常工作。

  • 您正在for循环中构建XPath,而不添加任何值。动态构建的字符串不会填充任何内容。

相关内容

最新更新