Python selenium.common.exceptions 模块,ElementNotVisibleException() 实例源码
我们从Python开源项目中,提取了以下11个代码示例,用于说明如何使用selenium.common.exceptions.ElementNotVisibleException()。
def _is_element_visible(self, *locator):
try:
return self._get_element(*locator).is_displayed()
except (Exceptions.NoSuchElementException,
Exceptions.ElementNotVisibleException):
return False
def _get_element_id(self, *locator):
try:
return self.driver.find_element(*locator).id
except (Exceptions.NoSuchElementException,
Exceptions.ElementNotVisibleException):
return None
def _internal_login(self, driver, user, password):
switch = None
count = 0
while not switch and count < 10:
t = driver.find_element_by_id("toggle")
driver.implicitly_wait(1)
t.click()
try:
switch = driver.find_element_by_id('username')
except ElementNotVisibleException:
count += 1
u = driver.find_element_by_id("username")
u.send_keys(user)
p = driver.find_element_by_id("password")
p.send_keys(password)
p.submit()
def login_as(self, username, passwd):
iframe = self.driver.find_element_by_tag_name("iframe")
self.driver.switch_to.frame(iframe)
self.driver.find_element_by_id("login-btn").click()
self.driver.switch_to.default_content()
switch = None
count = 0
while not switch and count < 10:
t = self.driver.find_element_by_id("toggle")
self.driver.implicitly_wait(1)
t.click()
try:
switch = self.driver.find_element_by_name('username')
except ElementNotVisibleException:
count += 1
self.driver.find_element_by_name("username").send_keys(username)
self.driver.find_element_by_name("password").send_keys(passwd)
self.driver.find_element_by_name("password").submit()
def _is_element_displayed(self, element):
if element is None:
return False
try:
if isinstance(element, webelement.WebElement):
return element.is_displayed()
else:
return element.src_elem.is_displayed()
except (Exceptions.ElementNotVisibleException,
Exceptions.StaleElementReferenceException):
return False
def is_elements_by_xpath(self, xpath):
"""
???????????2?????
:param xpath:
:return:
"""
try:
webdriverwait(
driver=self.driver,
timeout=1,
poll_frequency=current_config['POLL_FREQUENCY']
).until(lambda x: x.find_elements_by_xpath(xpath))
return True
except ElementNotVisibleException:
return False
def submit_application(driver, debug=False):
"""Click the apply button and submit the application.
Positional argument:
driver -- the Selenium webdriver instance
Keyword argument:
debug -- flag used for testing to omit application submission
There are two types of apply methods: one applies after
clicking the apply button,and the other applies after clicking the
continue button and answering some questions. The try/except clause
clicks the apply button if it exists,otherwise it will click the continue
button and select the radio buttons that indicate 'Yes'.
"""
try:
driver.find_element_by_link_text('Continue').click()
driver.implicitly_wait(1)
for radio_button in driver.find_elements_by_xpath('//*[@type="radio" and @value="0"]'):
radio_button.click()
if not debug:
driver.find_element_by_id('apply').click()
driver.implicitly_wait(1)
print('Application Successful.')
except (NoSuchElementException, ElementNotVisibleException):
if not debug:
driver.find_element_by_id('apply').click()
driver.implicitly_wait(1)
print('Application Successful.')
finally:
driver.switch_to.window(driver.window_handles[0])
def test_wrapper(name, id, test_function, *args):
"""
Wrapper method
:param name: of the test
:param id: of the test
:param test_function: the function itself
:return: value of the test_function on success,0 otherwise
"""
ret_val = 0
try:
global test_counter
test_counter += 1
ret_val = test_function(*args)
print(' ' + str(id) + ': ' + ('SUCCESS' if ret_val == 1 else 'FAIL'))
print('')
except AttributeError as e:
Helper.print_error('AttributeError', name, e)
except exceptions.ElementDoesNotExist as e:
Helper.print_error('ElementDoesNotExist', e)
except IndexError as e:
Helper.print_error('IndexError', e)
except ElementNotVisibleException as e:
Helper.print_error('ElementNotVisibleException', e)
except WebDriverException as e:
Helper.print_error('WebDriverException', e)
except ConnectionResetError as e:
Helper.print_error('ConnectionResetError', e)
except ConnectionRefusedError as e:
Helper.print_error('ConnectionRefusedError', e)
except Exception as e:
Helper.print_error('Exception', e)
finally:
return ret_val if ret_val != 0 else ret_val
def test_can_remove_form(self):
"""
Test for ability to remove a form from the formset.
"""
url = 'http://localhost:8000/collections/mongodb/cyphon/posts/query'
self.webdriver.get(url)
add_filter = self.webdriver.find_element_by_id('id_add_filter')
remove_filter = self.webdriver.find_element_by_id('id_remove_filter')
joiner = self.webdriver.find_element_by_id('id_joiner')
filters = self.webdriver.find_elements_by_css_selector('#id_formset .filter')
self.assertEqual(len(filters), 1)
num_forms = self.webdriver.find_element_by_id('id_form-TOTAL_FORMS')
self.assertEqual(num_forms.get_attribute('value'), '1')
with self.assertRaises(ElementNotVisibleException):
remove_filter.click()
with self.assertRaises(ElementNotVisibleException):
joiner.click()
add_filter.click()
add_filter.click()
filters = self.webdriver.find_elements_by_css_selector('#id_formset .filter')
self.assertEqual(len(filters), 3)
num_forms = self.webdriver.find_element_by_id('id_form-TOTAL_FORMS')
self.assertEqual(num_forms.get_attribute('value'), '3')
remove_filter.click()
remove_filter.click()
filters = self.webdriver.find_elements_by_css_selector('#id_formset .filter')
self.assertEqual(len(filters), '1')
with self.assertRaises(ElementNotVisibleException):
remove_filter.click()
with self.assertRaises(ElementNotVisibleException):
joiner.click()
def test_user_cancel_Feedback_before_making_changes_58316(self):
"""Cancel Feedback.
Steps:
Click "Get Help" from the user menu
Enter a question or search words into the search engine
Click "Search" or press enter
Click on a search result
Scroll to "Feedback"
Click "No"
[optional] Enter Feedback into the text Box
Click "Cancel"
Expected Result:
The popup Box closes
"""
self.ps.test_updates['name'] = 't2.18.012' \
+ inspect.currentframe().f_code.co_name[4:]
self.ps.test_updates['tags'] = ['t2', 't2.18', 't2.18.012', '58316']
self.ps.test_updates['passed'] = False
# Test steps and verification assertions
self.teacher.login()
self.teacher.find(By.XPATH, '//p[@data-is-beta="true"]').click()
self.teacher.open_user_menu()
self.teacher.find(By.LINK_TEXT, 'Get Help').click()
self.teacher.sleep(1)
window_with_help = self.teacher.driver.window_handles[1]
self.teacher.driver.switch_to_window(window_with_help)
self.teacher.find(By.ID, 'searchAskInput') \
.send_keys('question')
self.teacher.find(By.ID, 'searchAskButton').click()
self.teacher.page.wait_for_page_load()
self.teacher.find(By.CSS_SELECTOR, '.article a').click()
assert('articles' in self.teacher.current_url()), 'not at the article'
self.teacher.find(By.CSS_SELECTOR, '#Feedback [value="No"]').click()
self.teacher.wait.until(
expect.visibility_of_element_located((
By.ID,
'FeedbackDialog'
))
)
self.teacher.find(By.CSS_SELECTOR, '[value="Cancel"]').click()
with self.assertRaises(ElementNotVisibleException):
self.teacher.find(By.ID, 'FeedbackDialog').click()
self.ps.test_updates['passed'] = True
# C58318 - 013 - User | View related articles
def start():
captcha_cracker.setup()
captcha_cracker.captcha_element.click_initial_checkBox()
time.sleep(0.5)
if captcha_cracker.captcha_correct():
captcha_cracker.num_guesses += 1
captcha_cracker.num_correct += 1
captcha_cracker.print_stats()
browser_reload()
while captcha_cracker.num_guesses < MAX_RUNS:
try:
captcha_cracker.get_new_captcha()
captcha_cracker.preprocess_images()
captcha_cracker.get_predictions()
# matching_checkBoxes = captcha_cracker.select_random_checkBoxes()
# uncomment to run random clicker,
# comment get_predictions and select_correct_checkBoxes as well if doing that
matching_checkBoxes = captcha_cracker.select_correct_checkBoxes()
time.sleep(1)
# refresh the checkBoxes as the urls may have changed,and we need to check the new urls
captcha_cracker.refresh_checkBoxes()
if matching_checkBoxes:
if captcha_cracker.captcha_changed():
continue
else:
captcha_cracker.verify()
captcha_cracker.num_guesses += 1
else:
if captcha_cracker.captcha_changed():
captcha_cracker.verify()
else:
captcha_cracker.reload()
captcha_cracker.num_guesses += 1
time.sleep(0.5)
captcha_correct = captcha_cracker.captcha_correct()
if captcha_correct:
captcha_cracker.num_correct += 1
write_guesses_to_file(captcha_cracker.captcha_element.captcha, matching_checkBoxes, captcha_correct)
captcha_cracker.print_stats()
except SameCaptchaException:
browser_reload()
except (ElementNotVisibleException,
StaleElementReferenceException,
CaptchaimageNotFoundException,
CheckBoxNotFoundException,
InvalidElementStateException,
QueryTextNotFoundException):
browser_reload()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。