現在兩天就開始了:試圖自動將聯繫請求發送給搜索結果中的多個人並附帶消息。在登錄和搜索之後,重複添加按鈕的工作和add_btn.click()
打開彈出窗口。然而,只是在第一種情況下,我成功地通過try:
find_element_by_name
來訪問<textarea name="reason">
並且可以做element.send_keys()
來插入我的消息。在第二次迭代中,我似乎無法訪問郵件表單,但是,當我打印driver.find_elements_by_xpath("//*[@name]")
,<textarea name="reason">
的迭代時。Python&Selenium/XING:find_element第一次工作,而不是第二次迭代
我試圖捕捉最常見的異常,但似乎並不奏效。
誰能解釋PLS,1)這裏發生了什麼,爲什麼呼籲所有命名的元素可以列出textarea的,但我的具體打電話找不工作,和2)我怎麼能解決這個問題。謝謝!
這裏是我的代碼的一部分,在搜索結果中去:
def contact(text):
add_btns=driver.find_elements_by_css_selector("a.searchResult-actionLink.foundation-icon-core-contact-add.contact-lightbox-link")
i=0
wanted=6
for add_btn in add_btns:
i+=1
try:
add_btn.click()
time.sleep(2)
driver.save_screenshot("add%s.png" % (i,)) ###works on every turn!
elems=driver.find_elements_by_xpath("//*[@name]")
for elem in elems:
print i, elem.tag_name, elem.get_attribute("name") ###prints out 'textarea reason' on every turn!
try:
mssgbrd = driver.find_element_by_name("reason")
print "mssgbrd found" ###prints only on first round???
mssgbrd.send_keys(text)
driver.save_screenshot("request%s.png" % (i,))
except ElementNotVisibleException:
print "not visible"
except StaleElementReferenceException:
print "stale"
except NoSuchElementException:
print "no such element"
except TimeoutException:
print "timed out"
except:
print "something else happens"
request=driver.wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR,"#crl-button-send-request > a.element-form-button-solid-lime")))
try:
request.click()
time.sleep(3)
except TimeoutException:
print("Button not found!")
driver.save_screenshot("ButtonError%s.png" % (i,))
except:
print "Request not working" ###prints out on second round and after
driver.save_screenshot("xibit%s.png" % (i,)) ###get's called on second round and after
當我運行這段代碼,第一次成功的迭代之後我不斷收到的最後一個異常「請求不工作」的所有其他迭代。我已經用close_button.click()
測試了關閉彈出窗口而不是發送請求 - 這裏第二次迭代成功。
它是否打印「別的事情發生」?我可以訪問你的應用嗎?我認爲你可能需要等待原因。 – Buaban
@Buaban不,它只打印最後一個異常。它實際上不是一個應用程序,我登錄到他們的網站並使用Selenium/PhantomJS自動瀏覽和發送文本。我閱讀[這裏](https://stackoverflow.com/questions/44293962/unable-to-access-element-within-page)關於單擊某個特定按鈕後元素更改的可能性,也許會發生什麼?但我不知道如何解決這個問題。我也試過'driver.wait.until(EC.presence_of_element_located((By.NAME,「reason」)))'給了我相同的結果。 – user2822564