2013-07-05 27 views
7

Dưới đây là liên kết Tôi đang cố gắng để bấm:Nhấp vào liên kết sử dụng selen sử dụng python

<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a> 

Tôi đã thử một vài lựa chọn (được liệt kê dưới đây) nhưng họ đã không làm việc; bất kỳ ý tưởng?

  1. self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
  2. self.br.execute_script("OpenAddKeywords();return false;")

Đây là lỗi tôi đã có cho execute_script:

Message: u'Error Message => \'Can\'t find variable: OpenAddKeywords\'\n caused by Request => 

Và đây là một trong đó tôi đã có cho xpath:

Message: u'Error Message => \'Unable to find element with xpath \'//*[@id=\'btnAddKeywords\']\'\'\n caused by Request => 
+0

Chính xác chúng không hoạt động như thế nào? –

+0

@AlexanderPetrovich đã thêm lỗi :) – Mark

+2

Bạn đã thử 'self.br.find_element_by_id ('btnAddKeywords'). Nếu điều đó không hiệu quả, đó là bạn có thể không ở trên trang mà bạn nghĩ bạn đang ở. – n1r3

Trả lời

3

Bạn có thể thử sử dụng xpath như dưới đây. Nó đang làm việc cho tôi bởi vì tôi đã sử dụng dự án cuối cùng.

driver.find_element_by_xpath("xpath").click() 

Vui lòng thử nó ...

+0

Trên thực tế @Mark đã thử điều này và đề cập đến kết quả trong câu hỏi; vui lòng đọc kỹ câu hỏi và sau đó trả lời. :) –

5

Như tôi đã đề cập trong câu hỏi của riêng tôi here, vấn đề sẽ được giải quyết bằng phương pháp ActionChains lớp; một mã ngắn gọn là ở đây:

el = driver.find_element_by_id("someid") 
webdriver.ActionChains(driver).move_to_element(el).click(el).perform() 

Vấn đề chính là trong một số trường hợp, đặc biệt khi bạn có một số mã javascript trong trang của bạn, DOM sẽ thay đổi và các yếu tố bạn đã tìm thấy trước sẽ được staled. 'ActionChains' sẽ giữ nó sống động để thực hiện các hành động.

+0

@Mark Vấn đề của tôi rất giống với vấn đề của bạn và giải pháp của Zeinab đã làm việc cho tôi – rapvelopment

Các vấn đề liên quan