我正在使用Selenium在python3中运行一个循环,该循环进入一个网站,输入用户名+密码,在搜索中输入一个公司名称(然后对于崩溃的特定公司),并获取一些文本。每个循环都是为了找到某个公司的收入而产生的,大多数搜索都会弹出这个错误消息,但不是所有搜索都会弹出。我发现在搜索栏中输入公司名称后单击搜索按钮时会出现错误。你知道吗
def rev_finder(company,driver):
page = 'https://corporateaffiliations.com/Nonsub/AccountHelp'
driver.get(page)
user = driver.find_element_by_id('strUserName')
user.clear()
user.send_keys(username)
password = driver.find_element_by_id('strPassword')
password.clear()
password.send_keys(password1)
button = driver.find_element_by_id('signOn')
button.click()
driver.implicitly_wait(5)
search = driver.find_element_by_id('VAL_Name')
search.click()
search.send_keys(company)
parent = driver.find_element_by_name('VAL_ParentMember')
parent.click()
button = driver.find_element_by_name('buttonSearch')
button.click()
driver.implicitly_wait(5)
revenue = driver.find_element_by_xpath("/html/body/div/div[3]/div/table/tbody/tr/td/form/table[2]/tbody/tr[2]/td[6]/div").get_attribute("innerHTML")
return revenue
def remove(string):
string.replace("INC","").replace("Inc","").replace(".","").replace(",","")
return string
companies = sheet['Company']
companies = companies[1:4]
revenue = []
for company in companies:
company = remove(company)
try:
driver = webdriver.Firefox(executable_path=r'C:\Users\ktorres\Downloads\geckodriver-v0.24.0-win64\geckodriver')
rev = rev_finder(company,driver)
except:
rev = 'Check Manually'
revenue.append(rev)
此错误消息。。。你知道吗
…意味着在尝试更改服务请求所有者时无法更改,因为存在活动工作流。你知道吗
您的主要问题是,在被标识为
driver.find_element_by_name('buttonSearch')
的元素上调用click()
的时间太早了,因为有一些JavaScript/AJAX更新了HTML DOM。你知道吗您可以在ORA-20002 error when try to cancel active workflow on the Service Request form (Doc ID 2045240.1)中找到有关此错误的详细讨论
解决方案
您需要导入WebDriverwait,以使所需的元素可单击,并且可以使用以下解决方案:
这个错误与硒无关。这是您正在测试的web应用程序中的错误。硒已经完成了它的工作,发现你有缺陷!你知道吗
相关问题 更多 >
编程相关推荐