我遇到的问题是间歇性的。我已经注意到这个特定网站大约有40-50%的时间。我无法理解为什么会这样。它没有链接到任何特定的浏览器。它与firefox和chrome一起发生。
之前没有发生......
raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
上面的代码应该从excel表中输入名称,并将此excel表中的域名输入到相应的框中。但是,无论出于何种原因,在此过程中,此过程会在选择域框时挂起。
这是一张它的样子:
通常“@”标志周围没有红框。该过程在输入该框的值时会受到阻碍......并且只是超时。
所以通过挂断,我的意思是它实际上并没有找到“域”元素。因此,它不会在域框中输入任何内容,从而阻止整个自动化过程并抛出此异常:byte[]
答案 0 :(得分:0)
我发现这个问题的唯一好方法是执行javascript来设置值。
WebElement element = idriver.findElement(By.id(("form-search-domain")));
((JavascriptExecutor)idriver).executeScript("arguments[0].value = 'sample';", element);
很抱歉,代码示例是Java格式的。但是你所要做的就是执行javaScript document.findElementbyId(" ID")。value ="你的价值"
答案 1 :(得分:0)
认为你出类拔萃的数据如下所示:
“ test1 ”适用于 - 名字和姓氏文本框
“示例”适用于 - Domain.com文本框
所以在代码中你应该改变
inputDomain.send_keys(sheet.cell_value(i,2))
到
inputDomain.send_keys(sheet.cell_value(i,1))
因为您从第0行和第1列而不是第2列提取数据(样本)
供您参考,请详细阅读以下代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import xlrd
browser = webdriver.Firefox()
book = xlrd.open_workbook("path_to_excelfile\\sample.xlsx")
sheet = book.sheet_by_name("Sheet1")
i=0
browser.get("https://www.voilanorbert.com")
inputName = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "form-search-name")))
inputName.click()
inputName.send_keys(sheet.cell_value(i, 0))
inputDomain = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "form-search-domain")))
inputDomain.click()
inputDomain.send_keys(sheet.cell_value(i, 1))
norbertsearch = browser.find_element_by_name("search")
norbertsearch.click()