目的:学习webdriver下的actionchains复制粘贴写法,先不考虑实际情况
步骤:
1.进入百度注册页面
2.输入用户名,手机号,密码
3.复制手机号框中输入的手机号
4.在密码框中删除一个字符,添加一个新字符
5.在验证码框粘贴刚才复制的手机号
6.断言验证码框中字符是手机号前6位
期望:复制手机号框中的内容到验证码框
实际:没有全选复制手机号框中的内容,全选了密码框中的内容
问题:
不能全选到手机号框中的内容
代码如下
class Testweb1():
def setup(self):
self.driver=webdriver.Chrome()
self.driver.implicitly_wait(30)
self.driver.maximize_window()
def teardown(self):
self.driver.quit()
def test_switchwindows(self):
self.driver.get('https://www.baidu.com/')
self.driver.find_element_by_xpath('//*[@id="u1"]/a').click()
self.driver.find_element_by_xpath('//*[@id="passport-login-pop-dialog"]/div/div/div/div[3]/a').click()
windows = self.driver.window_handles
self.driver.switch_to.window(windows[1])
action = ActionChains(self.driver)
#输入用户名
self.driver.find_element_by_name('userName').send_keys('4561')
#输入手机号
ele=self.driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_4__phone"]')
ele.send_keys('19092778754')
#复制手机号框中的值,这里试了click()也不行
action.move_to_element(ele).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL)
action.move_to_element(ele).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL)
#输入密码框中的值
oele=self.driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_4__password"]')
oele.send_keys('li123456')
action.move_to_element(oele)
action.pause(1)
# action.send_keys(Keys.NULL).pause(1)
action.move_to_element(oele).send_keys(Keys.BACKSPACE).pause(1)
action.move_to_element(oele).send_keys('7').pause(1)
action.move_to_element(oele).send_keys(Keys.TAB).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL)
action.perform()
yanzheng=self.driver.find_element_by_id('TANGRAM__PSP_4__verifyCode')
assert '190927' == yanzheng.get_attribute(value")
# 关闭当前窗口,返回原来窗口
# self.driver.close()
time.sleep(6)