在很多xpath定位中会需要带入变量,以达到传入参数的目的
1 #给指定人发消息
2 def SendMessege(self,who,what):
3 # 用xpath定位,xpath(u"//classname[contains(@text,text)]")
4 self.search(who)
5 time.sleep(3)
6 #点击选择联系人
7
8 # self.driver.find_element_by_id('com.tencent.mm:id/kz').click()
9 #路径中带入变量
10 path = "//android.widget.TextView[contains(@text,'"+who+"')]"
11 self.driver.find_element_by_xpath(path).click()
12 # UiSelector = "new UiSelector().id(com.tencent.mm:id/kz).classname(android.widget.TextView).text('"+who+"')"
13 # self.driver.find_element_by_android_uiautomator(UiSelector).click()
14 time.sleep(1)
15 # 清空输入框
16 self.driver.find_element_by_class_name('android.widget.EditText').clear()
17 # 输入文字内容
18 self.driver.find_element_by_class_name('android.widget.EditText').send_keys(what)
19 time.sleep(1)
20 # 点击表情
21 self.driver.find_element_by_accessibility_id(u'表情').click()
22 time.sleep(1)
23 # 选择表情
24 self.driver.find_element_by_xpath(
25 "//android.widget.GridView/android.widget.FrameLayout[13]/com.tencent.mm.ui.MMImageView").click()
26 time.sleep(2)
27 # 发送消息
28 self.driver.find_element_by_id("com.tencent.mm:id/a1u").click()
变量用str,整形转化为字符串
1 TDs = driver.find_elements_by_tag_name('td')
2 try:
3 for INPUT in inputs:
4 for POnumber in range(1,101):
5 #订单发送状态,所有订单抬头中发送状态,变量用str,整形转化为字符串
6 path = "//*[@id='table-head']/tbody/tr["+str(POnumber)+"]/td[10]/span"
7 #获取所有发送状态的文本属性
8 noSendtext = driver.find_element_by_xpath(path).text
9 #勾选框class属性为mmg-check,发送状态为未发送时,选中
10 if INPUT.get_attribute('class') == 'mmg-check' and noSendtext == u'未发送':
11 INPUT.click()
12 else:
13 continue
14 POnumber += 1
15 except NoSuchElementException as e:
16 return False