ওয়েবড্রাইভার এক্সসেপশন: এলিমেন্টটি বিন্দুতে ক্লিকযোগ্য নয় (x, y)
এটি একটি টিপিক্যাল হয় org.openqa.selenium.WebDriverException যা প্রসারিত java.lang.RuntimeException ।
এই ব্যতিক্রম ক্ষেত্রগুলি হ'ল:
- BASE_SUPPORT_URL :
protected static final java.lang.String BASE_SUPPORT_URL
- DRIVER_INFO :
public static final java.lang.String DRIVER_INFO
- সেশন_আইডি :
public static final java.lang.String SESSION_ID
আপনার পৃথক ব্যবহারের ক্ষেত্রে, ত্রুটিটি সব বলে:
WebDriverException: Element is not clickable at point (x, y). Other element would receive the click
এটা তোলে আপনার কোড ব্লক থেকে স্পষ্ট যে আপনি সংজ্ঞায়িত আছে wait
যেমন WebDriverWait wait = new WebDriverWait(driver, 10);
কিন্তু আপনি আহ্বান করা হয় click()
উপাদান পদ্ধতি সামনে ExplicitWait
হিসেবে খেলার মধ্যে আসে until(ExpectedConditions.elementToBeClickable)
।
সমাধান
ত্রুটি Element is not clickable at point (x, y)
বিভিন্ন কারণ থেকে উদ্ভূত হতে পারে। আপনি নিম্নলিখিত পদ্ধতির যে কোনও একটি দ্বারা তাদের সম্বোধন করতে পারেন:
1. জাভাস্ক্রিপ্ট বা এজেএক্স কল উপস্থিত থাকার কারণে এলিমেন্ট ক্লিক হচ্ছে না
Actions
ক্লাস ব্যবহার করার চেষ্টা করুন :
WebElement element = driver.findElement(By.id("navigationPageButton"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();
2. উপাদানটি ভিউপোর্টের মধ্যে না হওয়ায় ক্লিক করা হচ্ছে না
JavascriptExecutor
ভিউপোর্টের মধ্যে উপাদান আনতে ব্যবহার করার চেষ্টা করুন :
WebElement myelement = driver.findElement(By.id("navigationPageButton"));
JavascriptExecutor jse2 = (JavascriptExecutor)driver;
jse2.executeScript("arguments[0].scrollIntoView()", myelement);
৩. উপাদানটি ক্লিকযোগ্য হওয়ার আগে পৃষ্ঠাটি সতেজ হয়ে উঠছে।
এই ক্ষেত্রে প্রবৃত্ত ExplicitWait অর্থাত WebDriverWait যেমন বিন্দু 4 উল্লেখ করেছে।
৪) এলিমেন্টটি ডিওমে উপস্থিত রয়েছে তবে ক্লিকযোগ্য নয়।
এক্ষেত্রে উপাদানটি ক্লিকযোগ্য হতে পারে তার জন্য সেট দিয়ে এক্সপ্রেসওয়াইট প্ররোচিত করুন :ExpectedConditions
elementToBeClickable
WebDriverWait wait2 = new WebDriverWait(driver, 10);
wait2.until(ExpectedConditions.elementToBeClickable(By.id("navigationPageButton")));
5. উপাদান উপস্থিত কিন্তু অস্থায়ী ওভারলে রয়েছে।
এই ক্ষেত্রে, ওভারলে অদৃশ্য হওয়ার জন্য সেট ExplicitWait
দিয়ে প্ররোচিত করুন ।ExpectedConditions
invisibilityOfElementLocated
WebDriverWait wait3 = new WebDriverWait(driver, 10);
wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));
E. এলিমেন্ট উপস্থিত রয়েছে তবে স্থায়ীভাবে ওভারলে রয়েছে।
JavascriptExecutor
ক্লিক করে সরাসরি উপাদানটিতে পাঠাতে ব্যবহার করুন।
WebElement ele = driver.findElement(By.xpath("element_xpath"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ele);